MediaPlayer pause()行为

时间:2014-03-03 00:58:14

标签: android android-mediaplayer

我使用MediaPlayer来传输来自网址的音频。

根据文档,调用MediaPlayer pause后跟play将从暂停时恢复。

我想知道它如何与现场音频流配合使用。当我呼叫pause时,MediaPlayer会为所有传入数据创建某种缓冲区,并将其存储到我再次呼叫play之前?

如果确实如此,这个缓冲区的最大大小是多少?我主要关注的是用户暂停MediaPlayer并在存储传入音频数据时使用大量内存。

1 个答案:

答案 0 :(得分:6)

因为,据我所知,你正在使用Mediaplayer来传输来自URL的音频......就像广播频道一样。在此过程中,您正在使用缓冲区。所以,你得到的行为是非常明显的。当您暂停时,您的数据将继续存储并在恢复流时,它将从暂停时开始。

但是流式传输不应该以这种方式运行,不像存储的音频从它被暂停的点开始。流式音频应始终从此时的实时流式传输开始。所以,onPause,你应该释放缓冲区。当用户再次恢复时,您可以像第一次那样重新启动流。这就是行为的方式。

如果您结账,大多数无线电流媒体应用都会实现正常的无线电流媒体。