更改MediaPlayer的缓冲大小/间隔

时间:2014-06-26 12:15:35

标签: android android-mediaplayer

我在Android上使用MediaPlayer传输音频。 我希望我的应用程序改变缓冲间隔,如果网络很慢,即在开始播放之前初始缓存5%的歌曲,而不是所有缓存数据已经播放但新部分尚未准备好,然后缓存下一个10%等等。重点是避免歌曲在慢速网络上不断停止和重启。

根据this主题,我无法更改MediaPlayer的缓冲区大小。也许有人知道我怎么能做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:1)

是的,除非您是设备的硬件驱动程序提供商,否则无法更改MediaPlayer的缓冲区大小。

MediaPlayer类是C ++实现的一种包装器。例如。如果你调用myMediaPlayer.seekTo(123),你通过Java代码调用C ++方法。

public native void seekTo(int msec) throws IllegalStateException;

android.media.MediaPlayer.seekTo(int)的来源。


我建议您在加载一定比例的缓冲区后允许用户启动音频。

您可以跟踪使用onBufferingUpdate(MediaPlayer mp, int percent)侦听器缓冲的音频数量。

所以在prepared state和音频缓冲区获得一定百分比之后,例如50%你可以开始播放音频。