Android应用程序暂停/恢复另一个音乐播放器应用程序的音乐

Ani*_*jee 9 android android-music-player

在我的Android应用程序中,我使用MediaPlayer类播放不同的mp3文件.

用户正在使用默认音乐应用程序播放他/她自己的音乐.

我想要:

  1. 暂停默认音乐应用程序的音乐.
  2. 从我的应用程序开始播放音乐.
  3. 当我的音乐播放完毕后,我的应用程序将恢复用户的默认音乐.

我想从我的应用程序暂停并恢复默认音乐播放器的音乐.

是否有可能做到这一点?

Mci*_*gwe 9

以下代码将通过发送广播暂停默认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);
} 
Run Code Online (Sandbox Code Playgroud)


Aol*_*phn 7

伙计们,尝试遵循代码,它对我有用:

// stop music player
AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
am.requestAudioFocus(null,AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);

//resume music player

am.abandonAudioFocus(null);
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一对我有用的方法。它适用于 Spotify、播放音乐、谷歌播客。 (3认同)

Mun*_*f M 6

要控制当前播放的音乐,请使用此代码。

    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);
            }
Run Code Online (Sandbox Code Playgroud)

事实上,这是唯一适用于我使用的所有音乐应用程序的代码。检查过

  • 谷歌播放音乐。
  • 苹果音乐
  • 一加音乐应用


Xar*_*han 5

// 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);
Run Code Online (Sandbox Code Playgroud)

有关可用命令的更多信息:

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";
Run Code Online (Sandbox Code Playgroud)