系统音乐播放器暂停、播放的控制
16lz
2021-01-26
转载自:http://blog.csdn.net/piaozhiye/article/details/6417318
今天在csdn上有问这个问题就研究下,正好自己的项目也需要用到,顺便做个记录。
来自android自带的music源码,下面是广播接收的代码,通过发送广播来控制音乐的播放,停止等。
代码如下:
[java] view plain copy print ?- public static final String PLAYSTATE_CHANGED = "com.android.music.playstatechanged";
- public static final String META_CHANGED = "com.android.music.metachanged";
- public static final String QUEUE_CHANGED = "com.android.music.queuechanged";
- public static final String PLAYBACK_COMPLETE = "com.android.music.playbackcomplete";
- public static final String ASYNC_OPEN_COMPLETE = "com.android.music.asyncopencomplete";
- public static final String SERVICECMD = "com.android.music.musicservicecommand";
- public static final String CMDNAME = "command";
- public static final String CMDTOGGLEPAUSE = "togglepause";
- public static final String CMDSTOP = "stop";
- public static final String CMDPAUSE = "pause";
- public static final String CMDPREVIOUS = "previous";
- public static final String CMDNEXT = "next";
- private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- String cmd = intent.getStringExtra("command");
- if (CMDNEXT.equals(cmd) || NEXT_ACTION.equals(action)) {
- next(true);
- } else if (CMDPREVIOUS.equals(cmd) || PREVIOUS_ACTION.equals(action)) {
- prev();
- } else if (CMDTOGGLEPAUSE.equals(cmd) || TOGGLEPAUSE_ACTION.equals(action)) {
- if (isPlaying()) {
- pause();
- } else {
- play();
- }
- } else if (CMDPAUSE.equals(cmd) || PAUSE_ACTION.equals(action)) {
- pause();
- } else if (CMDSTOP.equals(cmd)) {
- pause();
- seek(0);
- } else if (MediaAppWidgetProvider.CMDAPPWIDGETUPDATE.equals(cmd)) {
- // Someone asked us to refresh a set of specific widgets, probably
- // because they were just added.
- int[] appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
- mAppWidgetProvider.performUpdate(MediaPlaybackService.this, appWidgetIds);
- }
- }
- };
通过分析可以得出要暂停音乐可以有两种方法,一种是直接发送cmd,另外一种是发送action。
如下暂停音乐播放代码:
[java] view plain copy print ?- private void pauseMusic() {
- Intent freshIntent = new Intent();
- freshIntent.setAction("com.android.music.musicservicecommand");
- freshIntent.putExtra("command", "pause");
- sendBroadcast(freshIntent);
- }
- Intent freshIntent = new Intent();
- freshIntent.setAction("com.android.music.musicservicecommand");
- freshIntent.putExtra("command", "togglepause");
- sendBroadcast(freshIntent);
更多相关文章
- Android(安卓)OpenGL ES 绘图 --简单绘图
- Android笔记---使用HttpClient发送POST和GET请求
- android textview在code(代码)中设置图片 和XML设置图片
- Android(安卓)Studio如何更换包名(包括代码路径名和项目包名)
- 自定义datePicker的实现
- Android在代码中打开Wifi、移动网络和GPS
- Android的代码混淆(ProGuard)
- 从Android到IOS,IOS应用生命周期函数
- Android组件学习笔记(自定义设计View,以及布局直接引入的快捷方式)