0

MediaPlayer エラーのいずれかのヘルプ。最初のオーディオがその再生を完了しているときに DataSource を変更して 2 番目のオーディオを再生することが目的の場合。

私のコードは以下の通りです:- mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer arg0) 
        {

           String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + FILENAME+arrListSize+".wav";
           mMediaPlayer.release();
           mMediaPlayer = null;
           mMediaPlayer = new MediaPlayer();
           Uri uri  = Uri.parse("file://"+fileName);                                    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            try 
            {
              mMediaPlayer.setDataSource(getApplicationContext(), uri);
              mMediaPlayer.prepare();
            } 
            catch (Exception e) 
            {                       
                e.printStackTrace();
            }

エラー:- setDataSource が状態 32 で呼び出されました

ありがとう。

4

1 に答える 1

1

エラーから、 の前のインスタンスがMediaPlayer完全に解放されていないようです。再生が完了すると、が呼び出されると、プレーヤーは一時停止状態になります。同じものをリリースする前にお願いonCompletionListenerできますか?stopMediaPlayer

mMediaPlayer.stop();
mMediaPlayer.release();
mMediaPlayer = NULL;
mMediaPlayer = new MediaPlayer();
...
于 2013-03-01T15:39:24.770 に答える