【发布时间】:2014-07-13 15:01:33
【问题描述】:
我有一种情况,我想在从 android 媒体播放器流式传输任何视频文件时存储最后缓冲的媒体,这样当一个人尝试重播它时,它不需要重新缓冲它。
如何获取存储在媒体播放器缓冲区中的数据,如果我碰巧存储了数据,那么当我最后到达时,如果文件较大,我需要有起始数据的缓冲区,这将使它更复杂?
请建议我如何临时保留媒体播放器缓冲区数据的有效方法。
【问题讨论】:
标签: android
我有一种情况,我想在从 android 媒体播放器流式传输任何视频文件时存储最后缓冲的媒体,这样当一个人尝试重播它时,它不需要重新缓冲它。
如何获取存储在媒体播放器缓冲区中的数据,如果我碰巧存储了数据,那么当我最后到达时,如果文件较大,我需要有起始数据的缓冲区,这将使它更复杂?
请建议我如何临时保留媒体播放器缓冲区数据的有效方法。
【问题讨论】:
标签: android
好吧,如果您的目标是在相对准确的时间开始播放媒体文件,那么我曾经做过一件骇人听闻的事情。
将音量设置为零。
开始播放。
唤醒循环并定期检查位置。
如果位置> 0,则文件已缓冲并启动。
暂停。
将位置设置回 0。
重置音量。
在我的测试中,当您再次播放时,该文件将缓冲在内存中。您需要自己尝试一下。
至于自己将文件数据保存在内存中,现在您正在谈论较低级别的 api。对于音频,类似 Opensl。对于视频,MediaCodec 的东西(4.1+)。对于这两者,你有很多阅读要做。我写了一个原生的音频/视频编码器,但那是一场噩梦。
【讨论】: