【问题标题】:Buffering problems with android.media.MediaPlayerandroid.media.MediaPlayer 的缓冲问题
【发布时间】:2011-12-12 00:31:59
【问题描述】:

我正在尝试在 Android 应用程序上实现 MediaPlayer,但现在我遇到了两个问题,这不是 THE BIG SHOWSTOPPER,但它们更烦人,我必须为我解决它。

我为 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);
}
}

点击搜索栏后的预期

我得到了什么

这正常吗?

【问题讨论】:

  • +1 因为图片说明:D
  • 嘿 g.tobi。这有什么好运气吗?
  • 嗨,很抱歉回答迟了..我还没有修复它:(
  • 日志是怎么说的?通常媒体播放器非常冗长..

标签: android asynchronous media-player


【解决方案1】:

thread 确认虽然位置已被缓冲,但 MediaPlayer 向服务器发送请求。

【讨论】:

    猜你喜欢
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多