Android后台播放音乐

1.创建Service文件

2.创建raw目录

输入名字后回车(这里我已经创建了就不加示范)

3.复制音乐文件到raw目录

复制音乐文件后右键raw目录粘贴

4.Service代码

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.widget.Toast;

public class MyService extends Service {
    MediaPlayer play;
    public MyService() {
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        //throw new UnsupportedOperationException("Not yet implemented");
        return null;
    }
    @Override
    public void onCreate() {
        // 调用父类的onCreate方法,确保服务被正确初始化  
        super.onCreate();
        // 创建一个MediaPlayer实例,并加载存放在R.raw.abc2的音乐资源  
        play = MediaPlayer.create(this, R.raw.abc2);
        // 设置MediaPlayer为循环播放模式  
        play.setLooping(true);
        // 显示一个Toast消息,提示用户服务已被创建  
        Toast.makeText(this, "创建后台服务>>>>", Toast.LENGTH_SHORT).show();
    }

    // 重写Service的onStartCommand方法,当服务启动时调用  
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // 调用父类的onStartCommand方法,返回系统处理该命令的返回值  
        super.onStartCommand(intent, flags, startId);
        // 开始播放音乐  
        play.start();
        // 显示一个Toast消息,提示用户服务已启动并播放音乐  
        Toast.makeText(this, "启动后台服务,播放音乐>>>>", Toast.LENGTH_SHORT).show();
        // 返回START_STICKY,表示如果服务被系统意外杀死,之后系统会尝试重新创建它  
        return START_STICKY;
    }

    // 重写Service的onDestroy方法,当服务被销毁时调用  
    @Override
    public void onDestroy() {
        // 释放MediaPlayer资源,避免内存泄漏  
        play.release();
        // 调用父类的onDestroy方法,确保服务被正确销毁  
        super.onDestroy();
        // 显示一个Toast消息,提示用户服务已被销毁  
        Toast.makeText(this, "销毁后台服务>>>>", Toast.LENGTH_SHORT).show();
    }
}

5.主程序调用 

定义一个对象

调用对应函数

个人加入if是为了防止重复调用

if(i == 0) {
      i+=1;
      intent = new Intent(this, MyService.class);
      this.startService(intent);
}

5.成功运行

注:侵权,练习删!!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android 后台播放音乐,你需要创建一个 Service 并在其中实现音乐播放逻辑。以下是一个简单的示例: 1. 在 AndroidManifeset.xml 文件中注册 Service: ```xml <service android:name=".MyMusicService" /> ``` 2. 创建一个继承自 Service 的类 MyMusicService,并在其中实现音乐播放逻辑: ```java public class MyMusicService extends Service implements MediaPlayer.OnPreparedListener { private MediaPlayer mediaPlayer; @Override public int onStartCommand(Intent intent, int flags, int startId) { // 初始化 MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setOnPreparedListener(this); // 设置要播放音乐文件路径 String filePath = "/sdcard/music.mp3"; try { mediaPlayer.setDataSource(filePath); } catch (IOException e) { e.printStackTrace(); } // 异步准备 MediaPlayer mediaPlayer.prepareAsync(); // 返回 START_STICKY,表示 Service 被杀死后会自动重启 return START_STICKY; } @Override public void onDestroy() { // 释放 MediaPlayer 资源 mediaPlayer.release(); mediaPlayer = null; } @Override public void onPrepared(MediaPlayer mp) { // 准备完成后开始播放 mediaPlayer.start(); } @Nullable @Override public IBinder onBind(Intent intent) { return null; } } ``` 3. 在你的 Activity 中启动 Service: ```java Intent intent = new Intent(this, MyMusicService.class); startService(intent); ``` 这样就可以在 Android 后台播放音乐了。当 Service 被杀死时,系统会自动重启它,以确保音乐可以持续播放

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值