如何暂停和播放音乐播放器

3
我希望编写一个程序,可以暂停和播放安卓中的所有媒体播放器。如何将该程序的优先级设置为高于其他程序?同时我编写了以下代码。
public static final String SERVICECMD = "com.android.music.musicservicecommand";
    public static final String CMDNAME = "command";
    public static final String CMDPAUSE = "pause";
    public static final String CMDPLAY = "play";
    public static final String CMDTOGGLEPAUSE = "togglepause";

  AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

        if (mAudioManager.isMusicActive()) {

            Intent i = new Intent(SERVICECMD);
            i.putExtra(CMDNAME, CMDPAUSE);
            MainActivity.this.sendBroadcast(i);
            Toast.makeText(this, "media player is pause!", Toast.LENGTH_LONG).show();

        }
        if (!mAudioManager.isMusicActive()) {
            Intent i = new Intent(SERVICECMD);


            i.putExtra(CMDNAME, CMDPLAY);
            MainActivity.this.sendBroadcast(i);

            Toast.makeText(this, "media player is play!", Toast.LENGTH_LONG).show();
        }

它可以暂停每个玩家,但我不知道如何再次播放它们。我可以播放一些玩家,但不是所有玩家,我不知道为什么?


你应该阅读有关音频焦点的内容 https://developer.android.com/training/managing-audio/audio-focus.html#RequestFocus - baldguy
1个回答

1

请为播放和暂停按钮添加onClick事件。

您需要找到一种检索所有MediaPlayer对象的方法。

暂停:

mMediaPlayer.pause(); // Pause the MediaPlayer

播放中:
mMediaPlayer.prepare(); // Prepares the MediaPlayer to play a song

请同样编写一个 onPrepare 方法。
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
              mediaPlayer.start(); // play!
}

此外,这里有一个参考资料供您参考:https://github.com/naman14/Timber
这个开源音乐应用程序应该包含了大部分创建音乐播放器控制器所需的相关资源等。您将能够理解它是如何工作的。
同时,除非您没有实现MediaPlayer对象,否则您提供的代码不允许我帮助您识别任何问题。
原因在于:Audiomanager和MediaPlayer之间的区别 --编辑--
以下是如何通过MediaPlayerRegistry停止其他MediaPlayer实例的方法。 Android:如何停止其他活动的媒体播放器?

谢谢您的帮助。 但是我没有正确理解您发送的代码。 那段代码能否暂停和播放我的应用程序之外的程序? 我的意思是,每当我在我的应用程序中按下暂停和播放按钮时,我希望所有其他正在运行的媒体播放器都被暂停或播放.... 您的代码是否可以实现这一点? 还是仅适用于我的应用程序内部? - shahab mohseni
@shahabmohseni 不,它没有。请再次查看我的答案,我添加了停止其他媒体播放器的解决方案。 - Nicholas
我想恢复其他媒体播放器。 - shahab mohseni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接