通过Service播放音乐【Android】

来源:互联网 发布:查看linux详细版本 编辑:程序博客网 时间:2024/05/18 00:43
//播放
MediaPlayer player = MediaPlayer.create(context, R.raw.tmp);
player.start()


//暂停(再播放当前继续)
player.pause()


//停止(再播放重头开始)
player.stop();
player.reset();

player.release();

1.MainActivity.java

public void onClick(View v) {Intent intent = new Intent(this,MusicService.class);switch (v.getId()) {case R.id.btn_main_play://播放intent.putExtra("action", "play");startService(intent);break;case R.id.btn_main_stop://停止播放intent.putExtra("action", "stop");startService(intent);break;case R.id.btn_main_pause://暂停音乐intent.putExtra("action", "pause");startService(intent);break;case R.id.btn_main_exit://退出并停止音乐//停止服务stopService(intent);finish();break;default:break;}}
2.MusicService.java

package com.example.servicemusic;import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.os.IBinder;/** * 播放音乐的Service * @author Xiaocici * */public class MusicService extends Service {@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}private MediaPlayer player;@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {String action = intent.getStringExtra("action");if("play".equals(action)){playMusic();}else if("pause".equals(action)){pauseMusic();} else if("stop".equals(action)){stopMusic();} return super.onStartCommand(intent, flags, startId);}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();//在死亡之前停止音乐stopMusic();}/* * 播放音乐 */private void playMusic() {if(player==null){player = MediaPlayer.create(this, R.raw.brave_love);//音乐名不能为汉字}player.start();}/* * 暂停音乐 */private void pauseMusic() {if(player!=null&&player.isPlaying()){player.pause();}}private void stopMusic() {if(player!=null){player.stop();//停止player.reset();//重置player.release();//释放资源player = null;//赋空}}}

3.配置Service

<service android:name="com.example.servicemusic.MusicService"></service>



0 0
原创粉丝点击