我在Android上使用MediaPlayer
传输音频。
我希望我的应用程序改变缓冲间隔,如果网络很慢,即在开始播放之前初始缓存5%的歌曲,而不是所有缓存数据已经播放但新部分尚未准备好,然后缓存下一个10%等等。重点是避免歌曲在慢速网络上不断停止和重启。
根据this主题,我无法更改MediaPlayer
的缓冲区大小。也许有人知道我怎么能做到这一点?
提前致谢。
答案 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%你可以开始播放音频。