小编Mik*_*ike的帖子

Android停止背景音乐

编辑 - 找到一个简单的5-10线解决方案!看下面我自己的答案!好极了!!!!!!!!!

我搜索了5个小时,数十个SO帖子,没有答案,这似乎是最简单明显的怪异事!

编辑顺便说一句,这不是一个音乐播放器的应用程序,只是一个应用程序来查看图片和文本,打开多个活动,如菜单和关于,查看差异类型的图片等.我只想播放一些简单的背景音乐,同时通过图片看和文字,为什么这么难?

另一个编辑 - 似乎主要的问题是:"为什么按下主页按钮不打开onPause或onStop ???" - 我可以知道何时停止媒体播放器?我在市场上下载的游戏怎么做到这个???

家庭活动开始

然后

媒体播放器开始:

player = MediaPlayer.create(this, R.raw.idil);
player.setLooping(true);
player.setVolume(100,100);
player.start();
Run Code Online (Sandbox Code Playgroud)

玩家在onCreate之外宣布

MediaPlayer player;
Run Code Online (Sandbox Code Playgroud)

当其他活动被打开时,背景音乐继续不间断,这很好,这就是我想要的.

现在,当我完成了我非常简单的应用程序(只显示差异活动中的一些图片和文本)时,我要么多次单击BACK以进入主页/原始活动,然后又一次"退出",或者,我只是按回家"退出",因为我已经完成了这个应用程序,我不再需要听到那个音乐了.


选项1

通话player.stop();中的onPause覆盖,这是不是我想要的,因为当我离开家的活动像"菜单"和"约",我也没有什么用暂停和打开新的活动的时候,因为我做恢复等活动的背景音乐停止不希望漂亮的背景音乐"跳过"或被打断.


方案2

@Override
    protected void onPause() {
        super.onPause();
        if (this.isFinishing()){
            player.stop();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是更好的,因为背景音乐不会在活动之间停止,当我从我的家庭活动按BACK时,音乐停止,我可以继续享受安卓的安卓手机,问题是,当按下HOME时按钮"退出"我的应用程序,那讨厌的背景音乐继续播放.


奇怪

@Override
protected void onStop() {
        super.onStop();
        if (this.isFinishing()){
            player.stop();
        }
    }
Run Code Online (Sandbox Code Playgroud)

与onPause相同(我确实理解实际的差异)

编辑 - 这似乎没关系,如果player.stop(); 高于或低于super.onStop(); 但它影响我无法看到的东西,无论哪种方式,仍然没有解决方案:(

OOOOO

OOOOO

编辑 - 另一个选项 - 但不工作

public void onUserLeaveHint() { …
Run Code Online (Sandbox Code Playgroud)

android background media-player

26
推荐指数
1
解决办法
5万
查看次数

标签 统计

android ×1

background ×1

media-player ×1