调用 stop() 和 release() android 后声音不会停止

Posted

技术标签:

【中文标题】调用 stop() 和 release() android 后声音不会停止【英文标题】:Sound does not stop after calling stop() and release() android 【发布时间】:2012-04-22 14:52:23 【问题描述】:

我有一个活动,它会在分数屏幕上循环播放一首简单的歌曲,具体取决于玩家在我的游戏中是赢还是输。但是,在退出我的 Score Activity 后,声音会继续循环,直到发生垃圾回收。以下是我的代码的 sn-ps。我目前强制垃圾收集停止声音!为什么 stop() 或 release() 不起作用?

public void onPause()
    super.onPause();
    _sounds.release();


public void load()
    _victory = MediaPlayer.create(mActivity, R.raw.victory);
    _victory.setLooping(true);

    _failure = MediaPlayer.create(mActivity, R.raw.flutedeath);
    _failure.setLooping(true);


public void release()
    _victory.stop();
    _victory.release();
    _victory = null;

    _failure.stop();
    _failure.release();
    _failure = null;
    System.gc();

【问题讨论】:

【参考方案1】:

您是否尝试过使用类似这样的 OnCompletionListener:

      try 
            mp = MediaPlayer.create(this, fileId);
            mp.start();

            mp.setOnCompletionListener(new OnCompletionListener() 

                public void onCompletion(MediaPlayer mp) 
                    mp.release();
                    mp = null;

                
            );
         catch (Exception exception) 
        

【讨论】:

如果 MediaPlayer 没有循环播放,您的建议有效。然而,在我的三星 Galaxy SII 上,声音继续像以前一样循环,尽管 stop() 和 release()。

以上是关于调用 stop() 和 release() android 后声音不会停止的主要内容,如果未能解决你的问题,请参考以下文章

Record, Pause, and Stop Traces

[Docker] Run, Stop and Remove Docker Containers

postgresql server start and then immediately stop

make: *** No targets specified and no makefile found. Stop.错误

nginx-1.11.10 download, install, start and stop

linux make: *** No targets specified and no makefile found. Stop.