如何在实际完全加载视频之前开始在 MediaPlayer 中播放视频
Posted
技术标签:
【中文标题】如何在实际完全加载视频之前开始在 MediaPlayer 中播放视频【英文标题】:How to start playing a video in MediaPlayer before actually completely loading a video 【发布时间】:2021-04-24 04:27:16 【问题描述】:我用VideoView
和MediaPlayer
编写了一个VideoViewActivity。现在开始播放大约 11MB 的视频大约需要 10-15 秒,4 秒存储在本地存储中。我听说对于本地存储视频,MediaPlayer
比 ExoPlayer
更好。如何在加载第一位后立即开始播放视频,以便减少按下播放和实际开始播放之间的延迟。顺便说一句,为了比较,whatsapp 一点击就立即加载和播放大小甚至 30MB 的视频!!!
【问题讨论】:
【参考方案1】:MediaPlayer 尽早解码和播放媒体。当我们必须使用来自本地来源的媒体流时,最好使用 MediaPlayer。另一方面,ExoPlayer 可以用于流媒体源,例如来自网站或存储桶。
在这两种情况下,各自的播放器都需要一堆必须播放的解码帧数据。如果您使用的格式很复杂,解码可能需要很长时间。
就whatsapp而言,它获取原始文件并专门压缩它以在其媒体管理器中使用。
我会推荐使用 exoplayer,因为它更容易处理和更短的准备时间。还支持流式传输。
【讨论】:
Whatsapp 压缩原始文件.. 当然。但是我的一个压缩文件本身有 30mb,它会立即启动。他们是怎么做到的? 据我推测,文件的编码存在差异。这意味着您的编码文件与 whatsapp 文件的编码文件不同。这种差异会导致 whatsapp 的解码时间更短。以上是关于如何在实际完全加载视频之前开始在 MediaPlayer 中播放视频的主要内容,如果未能解决你的问题,请参考以下文章