使用android.media.MediaPlayer缓冲问题

时间:2011-05-27 18:31:07

标签: android asynchronous media-player

我正在尝试在Android应用上实现MediaPlayer,但现在我有两个问题,这些问题不是很大的问题,但它们更令人烦恼,而且我必须修复它,仅适合我。

我为一个Activity实现了一个异步MediaPlayer + Controller,工作正常。 我的计划是显示MediaControl上缓冲的百分比。这也有效。

但现在,在我看到百分比之后,我看到了一个奇怪的行为:如果我寻找已经在缓冲区中的位置,缓冲将再次从此位置开始。这是一个已知和/或正常的行为/问题/功能吗?

以下是更多详情:

我正在使用2.2 SDK 这就是我实现它的方式

public class Details extends Activity implements MediaPlayer.OnPreparedListener, MediaController.MediaPlayerControl { 

[...]

private void setPosition(int currentPos ){
    position = currentPos;
}

[...]

public void onCreate(Bundle savedInstanceState) {

[...] 

mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
            @Override
            public void onBufferingUpdate(MediaPlayer mp, int progress) {
                setPosition(progress);
            }
        });

[...]

public int getBufferPercentage() {
    return position;
}

[...]

public void seekTo(int i) {
    General.mediaPlayer.seekTo(i);
}
}

enter image description here

点击搜索栏后我的预期

enter image description here

我得到了什么

enter image description here

这是正常的吗?

1 个答案:

答案 0 :(得分:1)

thread确认虽然已经缓存了一个位置,但MediaPlayer会向服务器发送请求。