簡體   English   中英

一個接一個播放歌曲導致MP3Extractor錯誤

[英]Playing song one after another causes MP3Extractor error

@Override
public void onCreate(Bundle savedInstanceState) {
...
        mMediaPlayer = new MediaPlayer();

        mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mediaPlayer) {
                playAudio(getNextAudioFile());
            }
        });
..
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if(mMediaPlayer != null) {
        mMediaPlayer.release();
        mMediaPlayer = null;
    }
}
    private boolean playAudio(String file) {
        if(file.isEmpty()) {
            return true;
        }

        if(mMediaPlayer.isPlaying()) {          
            mMediaPlayer.stop();
        }
    mMediaPlayer.reset();

        mAudioFile = new File(mBaseAudioDir, file);
        if(mAudioFile.canRead()) {
            try {
            mMediaPlayer.setDataSource(mAudioFile.getPath());
                mMediaPlayer.prepare();
            } catch (IllegalArgumentException e) {
                return false;
            } catch (IllegalStateException e) {
                return false;
            } catch (IOException e) {
                return false;
            }
            mMediaPlayer.start();
            return true;
        } else {
            return false;
        }
    }

它有效,但歌曲結束后我在日志中有這個錯誤信息:

03-13 12:52:05.101:ERROR / MP3Extractor(34):無法重新同步。 信號流結束。 03-13 13:16:59.585:INFO / StagefrightPlayer(34):setDataSource('/ mnt / sdcard / Audio / sound.mp3')

你真的不應該只有空的catch塊,你可能會得到一個解釋錯誤,但你只是忽略它試試這個:

     try {
        mMediaPlayer.setDataSource(mAudioFile.getPath());
            mMediaPlayer.prepare();
        } catch (IllegalArgumentException e) {
            Log.e(TAG, "mMediaPlayer IllegalArgumentException " ,e);
            return false;
        } catch (IOException e) {
            Log.e(TAG, "mMediaPlayer IOException" ,e);
            return false;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM