0

我正在播放一些 wav 文件,然后我想停止它。

我正在使用单例

private static playSound instance = null;

public static synchronized playSound getInstance(Context context) {
    if(null == instance) {
        instance = new playSound(context, "", 1);
    }

    return instance;
}

我在打电话

public void stopAudio() {
    try{
        myplayer.stop();
        myplayer.release();         
    } catch(Exception e){
        Log.e(TAG, "Exception caught:\n" + e.getMessage() +"\n" + e.getStackTrace());               
    }
}

instance不为空,所以我认为这应该有效,因为是同一个实例......

但我得到:

MediaPlayer: stop called in state 1
4

1 回答 1

2

你需要先检查它是否在播放?如果它正在播放,您的停止方法应该可以工作。

例如:

if (   media_player             != null
    && media_player.isPlaying() == true) {
    try {
        media_player.stop();
        media_player.release()
    } catch (Exception e) {
    }
} 
于 2012-09-10T12:18:39.347 回答