当前位置: 首页 > 知识库问答 >
问题:

在后台停止MediaPlayer-Android

曹均
2023-03-14

在我的一个活动中,有一个使用mediaPlayer播放音乐的按钮。它还可以选择在后台播放音乐,或者在活动结束时停止。

我用这个代码。

@Override
protected void onStop() {
    super.onStop();
    SharedPreferences perfs = PreferenceManager
            .getDefaultSharedPreferences(getApplicationContext());
    if (!perfs.getBoolean("bg_play", true)) {
        mediaPlayer.stop();
        mediaPlayer.release();
    }
}

这很好用。现在的问题是,当用户返回活动并按下播放按钮时,它会启动一个新的mediaPlayer并播放新的音乐。当新音乐开始播放时,我想在后台停止播放以前的音乐。

这是我的代码

private void myMediaPlayer() {
    if (mediaPlayer.isPlaying()) {
        mediaPlayer.pause();
    }
    else {
            mediaPlayer.stop();
            mediaPlayer.reset();
        try {
            mediaPlayer.setDataSource(Environment.getExternalStorageDirectory()+"file.mp3");
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            mediaPlayer.prepare();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        mediaPlayer.start();
    }
}

以及MediaPlayer声明

MediaPlayer mediaPlayer=new MediaPlayer();

在创建之前

共有1个答案

吴唯
2023-03-14

我是编程初学者,所以我可能错了...让mefiaPlayer变量静态工作不会吗?但是我认为问题是当你回到活动时,活动正在重建。

 类似资料:
  • 我正在android上开发一个音乐播放器,该应用程序有两个活动(MainActivity和PlayActivity)。在Main活动中,我有一个包含歌曲列表的列表视图,在PlayActivity中,我有一个按钮来收听和暂停音乐。问题是,当我返回MainActivity并从listview中选择一首新歌时,第一首歌会继续在后台播放,而第二首歌也会开始播放。选择新歌曲时,如何停止第一首歌曲?(我不想让

  • 问题内容: 我有一个媒体播放器服务,可在整个应用程序的后台播放音乐,例如: 问题在于,当用户更改应用程序或进入手机主屏幕(应用程序在后台运行)时,音乐仍在播放。 我试图停止它和方法,但是当我更改活动时这会停止音乐,这是我不希望的(我希望音乐在用户浏览活动时继续播放)。 更新资料 我尝试了广播: 我加了 在音乐服务的onCreate和接收事件的方法中: 在应用程序类中,我这样做: 但是音乐不会恢复

  • 我创建的Android应用程序包含2个按钮,点击每个按钮播放mp3文件。问题是,当我播放按钮1时,它播放声音1,当我单击按钮2时,它播放声音2。 我检查其他玩家的每个按钮是否正常工作,然后停止并播放单击的按钮 但是,如果我两次单击同一个按钮,则会将第一个音频保持在后台播放,然后再次播放另一个音频 我试图检查并停止它,但它不起作用! 我想,如果我点击按钮1,它将播放声音,如果再次点击它,它将停止播放

  • 我正在做一个游戏,里面有背景音乐。我想添加一个启动和停止音乐的静音按钮,但我不知道怎么做。创建音乐的方法是: 我想做的是在按钮的动作处理程序中,我想添加一个静音按钮,如果用户愿意,它可以启动和停止音频。所以它应该是这样的:如果(e.getSource()==muteButton){//启动和停止音乐} 我该怎么做?谢谢你的帮助!

  • 当开始播放时,会抛出以下断言: 进入后台状态后,抛出以下断言,音频挂起: 这在iOS 12中是不发生的,当它在后台时,音频会正常播放。