当前位置: 首页 > news >正文

AndroidStudio移动开发:使用Service播放音乐【步骤】

目录

一、创建新application

二、准备音乐文件

三、创建项目和布局(如果需要交互界面的话,这里简单假设一个基本布局)

四、创建MusicService类

五、在MainActivity中启动和控制Service(也可以另外创建MusicActivity类(假设布局对应的Activity为MusicActivity))

六、在AndroidManifest.xml中注册MusicService

七,结果展示


以下在Android Studio中使用Java编写代码,通过Service实现MP3音乐文件播放的基本步骤。

一、创建新application

(可能出现的问题) 

 修改distributionUrl=自己下的gradle地址

try again 等待 

二、准备音乐文件

MP3格式音乐,大小不要太大

 Android Resource Directory

 raw

 右键复制一个MP3音乐文件,粘贴到raw

 改名

、创建项目和布局(如果需要交互界面的话,这里简单假设一个基本布局)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_play"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Play" /><Buttonandroid:id="@+id/btn_pause"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Pause" /></LinearLayout>

四、创建MusicService类

  1. 在项目中创建一个名为MusicService的类,继承自Service

 

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;public class MusicService extends Service {private MediaPlayer mediaPlayer;@Overridepublic IBinder onBind(Intent intent) {return null;}@Overridepublic void onCreate() {super.onCreate();mediaPlayer = MediaPlayer.create(this, R.raw.your_mp3_file);}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {if (!mediaPlayer.isPlaying()) {mediaPlayer.start();}return START_STICKY;}@Overridepublic void onDestroy() {super.onDestroy();if (mediaPlayer.isPlaying()) {mediaPlayer.stop();}mediaPlayer.release();}
}

 MP3文件放在res/raw目录下,your_mp3_file.mp3改为你的音乐文件名称

五、在MainActivity中启动和控制Service(也可以另外创建MusicActivity类(假设布局对应的Activity为MusicActivity))

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {private Button btnPlay;private Button btnPause;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnPlay = findViewById(R.id.btn_play);btnPause = findViewById(R.id.btn_pause);btnPlay.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this, MusicService.class);startService(intent);}});btnPause.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this, MusicService.class);stopService(intent);}});}
}

六、在AndroidManifest.xml中注册MusicService

 <service android:name=".MusicService" />

七,结果展示

录制

(为了让录制能够带有声音,代码有部分修改。)

(播放前注意调整音量)

Android播放音乐屏幕录制 20241018


http://www.mrgr.cn/news/55806.html

相关文章:

  • 微信小程序考试系统(lw+演示+源码+运行)
  • Yolo目标检测:Yolo v1简介
  • 深入解析GPS接收机的位置数据文件:项目实战从数据解析到可视化
  • 教育技术革新:Spring Boot在线学习平台
  • 数据结构7——二叉树的顺序结构以及堆的实现
  • GPU在AI绘画中的作用以及GPU的选择
  • 最小差值 II
  • 大模型 Agent 概述
  • 关于懒汉饿汉模式下的线程安全问题
  • C++基础与实用技巧第三课:内存管理与性能优化
  • 字典学习算法
  • Stylish Archer Assets Pack 女弓箭手射箭动画动作
  • Docker 部署 EMQX 一分钟极速部署
  • 什么是运动控制器?运动控制器的特点
  • Echarts 点击事件无法使用 this 或者 this绑定的数据无法获取
  • 使二进制数组全部等于 1 的最少操作次数 II
  • 回归预测||时序预测||基于灰狼优化的时域卷积TCN连接Transformer-BiLSTM的数据回归预测|时序预测Matlab程序
  • 现代C语言:C23标准重大更新
  • Moectf-week1-wp
  • WSL2Linux 子系统(十三)
  • Mybatis 中<where>的用法注意事项(附Demo)
  • 商场楼宇室内导航系统
  • 不再手动处理繁琐任务!Python自动化方案梳理
  • 【力扣刷题实战】用队列实现栈
  • SpringBoot整合mybatisPlus实现批量插入并获取ID
  • 用docker Desktop 下载使用thingsboard/tb-gateway