使用 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
已重置。
我正在使用 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
已重置。