我正在使用 MediaPlayer
从 URL 流式传输音频。
根据文档,调用 MediaPlayer
pause
后跟 play
将从暂停点恢复。
我想知道这是如何处理实时音频流的。当我调用 pause
时,MediaPlayer
会为所有传入数据创建某种缓冲区,并存储它直到我再次调用 play
吗?
如果确实如此,这个缓冲区是否有最大大小?我主要担心用户暂停 MediaPlayer
并且它在存储传入的音频数据时使用大量内存。
最佳答案
据我了解,您正在使用 Mediaplayer 从 URL 流式传输音频……类似于广播 channel 。在此过程中,您正在使用缓冲区。所以,你得到的行为是很明显的。当您暂停时,您的数据将继续存储,并且在恢复流时,它将从暂停点开始。
但流式传输不应以这种方式运行,这与从暂停点开始的存储音频不同。流式音频应始终从实时流式传输的那一刻开始。所以,onPause,你应该释放缓冲区。当用户再次恢复时,您可以像第一次那样重新启动流。行为应该是这样的。
如果您查看,大多数 radio 流媒体应用程序都实现了正常的 radio 流媒体。
关于android - MediaPlayer 暂停()行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22135916/