Service后台服务控制音乐的播放暂停和停止,播放完自动播放下一曲
2017-07-25 16:56
507 查看
//添加获得sd卡的状态权限,和读取sd卡的权限 <uses- permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses- permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> // MainActivity中用三个按钮,播放,暂停,停止,发送服务到后台服务来控制 public class MainActivity extends Activity implements OnClickListener { private Button puase; private Button stop; private Button start; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); start = (Button) findViewById(R.id.start); puase = (Button) findViewById(R.id.puase); stop = (Button) findViewById(R.id.stop); start.setOnClickListener(this); puase.setOnClickListener(this); stop.setOnClickListener(this); } @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Service1.class); switch (v.getId()) { case R.id.start: intent.putExtra("key", 1); break; case R.id.puase: intent.putExtra("key", 2); break; case R.id.stop: intent.putExtra("key", 3); break; default: break; } startService(intent); } } //自定义类,继承Service服务 public class Service1 extends Service { private MediaPlayer mediaplayer; private ArrayList<Music> list; private String path = ""; 4000 private int index = 0; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); mediaplayer = new MediaPlayer(); list = new ArrayList<Music>(); //读取SD卡 if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { File file = Environment.getExternalStorageDirectory(); path = file.getAbsolutePath(); } list.add(new Music("男人歌", path + "/nanrenge.mp3")); list.add(new Music("夜色", path + "/yese.mp3")); list.add(new Music("漂洋过海来看你", path + "/piaoyang.mp3")); list.add(new Music("兄弟无数", path + "/xiongdiwushu.mp3")); //播放完成后自定播放下一曲 mediaplayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { index++; play(); } }); } //用这个方法控制MainActivity发来的服务,控制音乐 @Override public int onStartCommand(Intent intent, int flags, int startId) { int m = intent.getIntExtra("key", 0); switch (m) { case 1: play(); break; case 2:// 暂停 if (mediaplayer != null && mediaplayer.isPlaying()) mediaplayer.pause(); break; case 3:// 停止 if (mediaplayer != null) { mediaplayer.stop(); stopService(intent); } break; default: break; } return super.onStartCommand(intent, flags, startId); } //播放音乐 private void play() { mediaplayer.reset(); try { mediaplayer.setDataSource(list.get(index).getPath()); mediaplayer.prepare(); } catch (Exception e) { e.printStackTrace(); } mediaplayer.start(); } @Override public void onDestroy() { super.onDestroy(); if (mediaplayer != null) { mediaplayer.release(); mediaplayer = null; } } }
相关文章推荐
- Android实战 - 音心播放器 (通知实现音乐的播放/暂停/下一曲控制)
- 实现Activity中控制service里音乐播放、暂停的两种方式
- AS3.0实现音乐的播放,停止,暂停,和音量的控制
- 实现点击通知栏发送广播控制音乐的播放、暂停、上一曲、下一曲
- Android开发笔记之广播,service实现音乐的播放暂停停止快进等功能
- android组件Service控制后台音乐播放
- ActionScript 3.0 按钮控制音乐播放、暂停、停止、循环
- Android-Service (基本知识,生命周期,实例-startService 启动的服务音乐播放器后台服务播放)
- js控制网页背景音乐播放与停止的方法
- Android控制后台音乐播放器暂停,播放
- Android实现后台播放音乐(Service方式)
- 控制 MediaElement(播放、暂停、停止、音量和速度)
- 重新想象 Windows 8 Store Apps (65) - 后台任务: 音乐的后台播放和控制
- Android通过Service实现音乐后台播放
- android实现开机自动播放音乐实例(Broadcast、Service)
- HTML5 Audio中控制音乐暂停、播放的js
- 利用service实现音乐的后台播放
- 利用Service后台播放音乐实例
- Android Service AIDL 远程调用服务之简单音乐播放实例
- 使用MediaPlayer在Service中后台播放网络音乐