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());               
    }
}

instancenullではないので、同じインスタンスであるため、これは機能するはずです...

しかし、私は得る:

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 に答える