android 接入 基础播放器,使用Service组件实现简单的音乐播放器功能 --Android基础...

此博客展示了Android接入基础播放器的代码示例。通过创建MusicService类,实现了播放网络音乐的功能。在onCreate方法中设置播放源,onStartCommand方法里准备资源并开始播放,onDestroy方法停止播放并释放资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package thonlon.example.cn.servicedemo;

import android.app.Service;

import android.content.Intent;

import android.media.MediaPlayer;

import android.net.Uri;

import android.os.IBinder;

import java.io.IOException;

/**

* 绑定服务的时候被调用

*/

public class MusicService extends Service {

private MediaPlayer mediaPlayer;

@Override

public IBinder onBind(Intent intent) {

return null;

}

/**

* Service被创建后被调用

*/

@Override

public void onCreate() {

// 播放本地资源的音乐

// mediaPlayer = MediaPlayer.create(this, R.raw.snh);

// 播放文件系统的音乐

// File file = new File(Environment.getExternalStorageDirectory(), "zshyn.mp3");

// mediaPlayer = new MediaPlayer();

// try {

// mediaPlayer.setDataSource(file.getAbsolutePath());//通过获取绝对路径来设置播放源头

// } catch (IOException e) {

// e.printStackTrace();

// 播放网络中的音乐

mediaPlayer = new MediaPlayer();

Uri uri = Uri.parse("http://www.nxl123.cn/snh.mp3");

try {

mediaPlayer.setDataSource(this, uri);//或者直接mediaPlayer.setDataSource("http://www.nxl123.cn/snh.mp3");

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* Service被开始后调用

*/

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

mediaPlayer.prepareAsync();//准备资源,可能阻塞主线程,所以要在子线程调用。在这里使用prepareAsync函数就可以了

//防止资源还没有准备完毕就播放音乐,所以要设置准备资源监听器

//表示当准备资源完成后,调用监听器中onPrepare方法

mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mp) {

mediaPlayer.start();//开始播放音乐

}

});

//MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。

return super.onStartCommand(intent, flags, startId);

}

/**

* Service被停止后调用

*/

@Override

public void onDestroy() {

mediaPlayer.stop();//停止播放

mediaPlayer.release();//释放准备的资源,如果还需要用到此对象则可先不销毁

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值