在我的Android应用程序中,我使用MediaPlayer类播放不同的mp3文件。Android应用程序暂停/恢复其他音乐播放器应用程序的音乐
用户正在使用默认音乐应用程序播放他/她自己的音乐。
我想:
- 暂停默认的音乐应用程序的音乐。
- 从我的应用程序开始播放音乐。
- 当我的音乐完成播放时,我的应用程序将恢复用户的默认音乐。
我想从我的应用程序暂停和恢复默认音乐播放器的音乐。
可以做到这一点吗?
在我的Android应用程序中,我使用MediaPlayer类播放不同的mp3文件。Android应用程序暂停/恢复其他音乐播放器应用程序的音乐
用户正在使用默认音乐应用程序播放他/她自己的音乐。
我想:
我想从我的应用程序暂停和恢复默认音乐播放器的音乐。
可以做到这一点吗?
下面的代码将通过发送广播暂停默认的MediaPlayer:
AudioManager mAudioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
if (mAudioManager.isMusicActive()) {
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
YourApplicationClass.this.sendBroadcast(i);
}
我在一个应用程序中播放了一个mp3文件,而在另一个应用程序中,我编写了这段代码。但它不起作用。是否需要任何许可?或者这只适用于一个应用程序内? – MobiDev 2013-09-09 12:53:44
这只适用于播放音乐。是否有其他方式可以适用于所有音乐应用程序? @Mcingwe – 2017-07-28 10:36:30
// pause
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
sendBroadcast(i);
// play
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "play");
sendBroadcast(i);
// next
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "next");
sendBroadcast(i);
// previous
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "previous");
sendBroadcast(i);
有关可用命令一些更多的信息:
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 CMDPLAY = "play";
public static final String CMDPREVIOUS = "previous";
public static final String CMDNEXT = "next";
要控制当前播放的音乐使用此代码。
AudioManager mAudioManager = (AudioManager) c.getSystemService(Context.AUDIO_SERVICE);
if(mode == Config.MUSIC_NEXT) {
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT);
mAudioManager.dispatchMediaKeyEvent(event);
}else if(mode == Config.MUSIC_PLAY){
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY);
mAudioManager.dispatchMediaKeyEvent(event);
}
else if(mode == Config.MUSIC_PREV){
KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS);
mAudioManager.dispatchMediaKeyEvent(event);
}
INFACT这是正在为所有的音乐应用程序我使用的唯一代码。 用
参考http://stackoverflow.com/a/37374679/2254969。这里发布的答案现在已经老了。 – 2016-05-22 13:02:20