我正在使用MediaPlayer从URL流音频。

根据文档,调用MediaPlayer pause后再调用play将从暂停的位置恢复。

我想知道这如何与实时音频流一起工作。当我调用pause时,是MediaPlayer为所有传入数据创建某种缓冲区,并将其存储直到再次调用play吗?

如果确实如此,该缓冲区上是否有最大大小?我主要关心的是用户暂停MediaPlayer并在存储传入的音频数据时会占用大量内存。

最佳答案

依我所知,您正在使用Mediaplayer来从URL ..诸如广播 channel 等流式传输音频。在此过程中,您正在使用缓冲区。因此,您得到的行为非常明显。暂停时,数据将继续存储,并且在恢复流时,将从暂停点开始。

但是,与存储的音频(从暂停点开始)不同,流式传输不应以这种方式运行。此时,流音频应始终从实时流开始。因此,在onPause上,您应该释放缓冲区。当用户再次恢复时,您可以以第一次使用的方式重新启动流。这就是应该的行为。

如果您 checkout ,则大多数广播流应用程序中都实现了常规广播流。

关于android - MediaPlayer pause()行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22135916/

10-14 11:45