android调用,暂停或停止系统自带音乐播放器

今天在csdn上有问这个问题就研究下,正好自己的项目也需要用到,顺便做个记录。

来自android自带的music源码,下面是广播接收的代码,通过发送广播来控制音乐的播放,停止等。

代码如下:

[java]  view plain copy print ?
  1. public static final String PLAYSTATE_CHANGED = "com.android.music.playstatechanged";
  2. public static final String META_CHANGED = "com.android.music.metachanged";
  3. public static final String QUEUE_CHANGED = "com.android.music.queuechanged";
  4. public static final String PLAYBACK_COMPLETE = "com.android.music.playbackcomplete";
  5. public static final String ASYNC_OPEN_COMPLETE = "com.android.music.asyncopencomplete";
  6. public static final String SERVICECMD = "com.android.music.musicservicecommand";
  7. public static final String CMDNAME = "command";
  8. public static final String CMDTOGGLEPAUSE = "togglepause";
  9. public static final String CMDSTOP = "stop";
  10. public static final String CMDPAUSE = "pause";
  11. public static final String CMDPREVIOUS = "previous";
  12. public static final String CMDNEXT = "next";
  13. private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
  14. @Override
  15. public void onReceive(Context context, Intent intent) {
  16. String action = intent.getAction();
  17. String cmd = intent.getStringExtra("command");
  18. if (CMDNEXT.equals(cmd) || NEXT_ACTION.equals(action)) {
  19. next(true);
  20. } else if (CMDPREVIOUS.equals(cmd) || PREVIOUS_ACTION.equals(action)) {
  21. prev();
  22. } else if (CMDTOGGLEPAUSE.equals(cmd) || TOGGLEPAUSE_ACTION.equals(action)) {
  23. if (isPlaying()) {
  24. pause();
  25. } else {
  26. play();
  27. }
  28. } else if (CMDPAUSE.equals(cmd) || PAUSE_ACTION.equals(action)) {
  29. pause();
  30. } else if (CMDSTOP.equals(cmd)) {
  31. pause();
  32. seek(0);
  33. } else if (MediaAppWidgetProvider.CMDAPPWIDGETUPDATE.equals(cmd)) {
  34. // Someone asked us to refresh a set of specific widgets, probably
  35. // because they were just added.
  36. int[] appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
  37. mAppWidgetProvider.performUpdate(MediaPlaybackService.this, appWidgetIds);
  38. }
  39. }
  40. };

通过分析可以得出要暂停音乐可以有两种方法,一种是直接发送cmd,另外一种是发送action。

如下暂停音乐播放代码:

[java]  view plain copy print ?
  1. private void pauseMusic() {
  2. Intent freshIntent = new Intent();
  3. freshIntent.setAction("com.android.music.musicservicecommand.pause");
  4. freshIntent.putExtra("command", "pause");
  5. sendBroadcast(freshIntent);
  6. }
  7. 调用部分代码如下:
  8. Intent intent=new Intent();
  9. intent.setDataAndType(uri, "audio/*");//利用Uri可播放网络资源和本地资源
    intent.setAction(Intent.ACTION_VIEW);
    startActivity(intent);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值