使用 Media Player 一段时间后停止缓冲数据

Stop buffering data after some time with Media Player

我正在使用 Media Player 进行流式传输。有时因为连接速度慢或其他因素导致缓冲花费太多时间来调用 onPrepared 方法。我想在 Media Player 中一段时间​​后停止缓冲数据。

例如:

public void play() {
     try{
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mMediaPlayer.setDataSource(source);
        mMediaPlayer.prepareAsync();
    } catch (Exception e) {
       // ....
    }
}

@Override
public void onPrepared(MediaPlayer arg0) {

    // Send a message to activity to end progress dialogue
    sendBufferCompleteBroadcast();
    playMedia();

}

最好的方法是什么?

我在mMediaPlayer.prepareAsync()之后添加了调用以下方法。

// Prevent Media Player taking so long time
    private void postDelayed() {

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                mMediaPlayer.reset();
            }}, 5000);  // 5 seconds

    }

如果 5 秒后我没有收到响应,则 mediaplayer 已重置。