转载自:http://blog.csdn.net/piaozhiye/article/details/6417318

今天在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.   
  14.   
  15. private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {  
  16.      @Override  
  17.      public void onReceive(Context context, Intent intent) {  
  18.          String action = intent.getAction();  
  19.          String cmd = intent.getStringExtra("command");  
  20.          if (CMDNEXT.equals(cmd) || NEXT_ACTION.equals(action)) {  
  21.              next(true);  
  22.          } else if (CMDPREVIOUS.equals(cmd) || PREVIOUS_ACTION.equals(action)) {  
  23.              prev();  
  24.          } else if (CMDTOGGLEPAUSE.equals(cmd) || TOGGLEPAUSE_ACTION.equals(action)) {  
  25.              if (isPlaying()) {  
  26.                  pause();  
  27.              } else {  
  28.                  play();  
  29.              }  
  30.          } else if (CMDPAUSE.equals(cmd) || PAUSE_ACTION.equals(action)) {  
  31.              pause();  
  32.          } else if (CMDSTOP.equals(cmd)) {  
  33.              pause();  
  34.              seek(0);  
  35.          } else if (MediaAppWidgetProvider.CMDAPPWIDGETUPDATE.equals(cmd)) {  
  36.              // Someone asked us to refresh a set of specific widgets, probably  
  37.              // because they were just added.  
  38.              int[] appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);  
  39.              mAppWidgetProvider.performUpdate(MediaPlaybackService.this, appWidgetIds);  
  40.          }  
  41.      }  
  42.  };  
 

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

如下暂停音乐播放代码:

[java]  view plain copy print ?
  1. private void pauseMusic() {  
  2.     Intent freshIntent = new Intent();  
  3.     freshIntent.setAction("com.android.music.musicservicecommand");  
  4.     freshIntent.putExtra("command""pause");  
  5.     sendBroadcast(freshIntent);  
  6. }  
 

补充:启动事件为:

  1.     Intent freshIntent = new Intent();  
  2.     freshIntent.setAction("com.android.music.musicservicecommand");  
  3.     freshIntent.putExtra("command""togglepause");  
  4.     sendBroadcast(freshIntent);  

更多相关文章

  1. Android(安卓)OpenGL ES 绘图 --简单绘图
  2. Android笔记---使用HttpClient发送POST和GET请求
  3. android textview在code(代码)中设置图片 和XML设置图片
  4. Android(安卓)Studio如何更换包名(包括代码路径名和项目包名)
  5. 自定义datePicker的实现
  6. Android在代码中打开Wifi、移动网络和GPS
  7. Android的代码混淆(ProGuard)
  8. 从Android到IOS,IOS应用生命周期函数
  9. Android组件学习笔记(自定义设计View,以及布局直接引入的快捷方式)

随机推荐

  1. 基于Android(安卓)Bionic 库动态编译busy
  2. 了解Android堆和栈
  3. Android应用程序(APK)的编译打包过程
  4. Android如何开发自定义编译时注解
  5. Android(安卓)面试必备 - 知识图谱
  6. Android(安卓)滑动效果高级篇(七)—— 华丽
  7. android 监控软键盘确定 搜索 按钮并赋予
  8. Android(安卓)Animation学习笔记【原帖没
  9. 初次体验Android,过程很艰辛!
  10. android 使用contentobserver监听数据库