【问题标题】:Playing song one after another causes MP3Extractor error一个接一个地播放歌曲导致 MP3Extractor 错误
【发布时间】:2011-03-14 09:28:52
【问题描述】:
@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: 错误/MP3Extractor(34): 无法 重新同步。信号流结束。 03-13 13:16:59.585: 信息/StagefrightPlayer(34): setDataSource('/mnt/sdcard/Audio/sound.mp3')

【问题讨论】:

    标签: java android audio media-player


    【解决方案1】:

    你真的不应该只有空的 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;
            }
    

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 1970-01-01
      • 2017-03-26
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多