4

私はいくつかの短い音のために私のアプリでメディアプレーヤーを使用しています。アプリに問題やクラッシュは見つかりませんでしたが、次のエラーメッセージが表示されることがありました。これを解決するのを手伝ってください。

03-23 22:53:16.229: E/MediaPlayer(19185): pause called in state 8
03-23 22:53:16.229: E/MediaPlayer(19185): error (-38, 0) 
03-23 22:53:16.449: E/MediaPlayer(19185): Error (-38,0)
03-23 22:53:16.449: D/OpenGLRenderer(19185): Flushing caches (mode 0) 
03-23 22:53:16.459: D/OpenGLRenderer(19185): Flushing caches (mode 0)
03-23 22:53:17.759: D/OpenGLRenderer(19185): Flushing caches (mode 0) 
03-23 22:53:17.809: W/MediaPlayer-JNI(19185): MediaPlayer finalized without being released
03-23 22:53:17.809: W/MediaPlayer-JNI(19185): MediaPlayer finalized without being released
03-23 22:53:17.809: W/MediaPlayer-JNI(19185): MediaPlayer finalized without being released
4

3 に答える 3

11

単純なif-checkを使用して一時停止を処理できます。これを試して:

MediaPlayer mp = MediaPlayer.create(this, Uri.parse(Environment.getExternalStorageDirectory().getPath()+ "/Music/jaihind.mp3"));
if(mp.isPlaying()) {
    mp.pause();
} else {
    mp.start();
}

ノート:

mp = MediaPlayer.create(...);

はすでに返されたMediaPlayerを準備しているため、prepare(またはそのバリアントを)再度呼び出すことはできません(また、onPreparedListenerも必要ありません)。

于 2014-03-14T10:20:05.777 に答える
1

これを使わないといけないと思います

 public class Sound extends Activity{

MediaPlayer mp;

    @Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    mp.release();
}

}
于 2013-03-23T17:58:45.043 に答える
0

mp.release();トリックを行います。[の代わりにmp.pause();]

于 2013-12-06T02:16:39.100 に答える