android暂停或停止其他音乐播放器的播放

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

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

代码如下:

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。

如下暂停音乐播放代码:

private void pauseMusic() { Intent freshIntent = new Intent(); freshIntent.setAction("com.android.music.musicservicecommand.pause"); freshIntent.putExtra("command", "pause"); sendBroadcast(freshIntent); } 

 

你可能感兴趣的:(android应用开发)