我想做的是,有一些在线视频的音频和视频是不同步的。我想知道是否有可能预先加载音频和预先播放音频,以便它与视频同步。有没有javascript命令呢?
我见过HTML中的preload属性,但它只加载音频和视频。可以在视频开始前播放音频吗?
据我所知,我觉得音频是附在视频上的。我的意思是,你不能让音频在视频之前播放,只能推迟播放。我想知道有没有办法在视频开始前1秒播放音频,这样他们就会同步
发布于 2019-07-17 01:50:16
无论是否预加载媒体,同步仍然是一个问题。即使你的一切都在内存中并准备好播放,独立的媒体文件可以在两个不同的时基上运行,它们会随着时间的推移而逐渐分离。
过去有一个MediaController interface,它的创建目的是为了保持不同元素的同步。不幸的是,它从来没有得到正确的实现,基本上已经被抛弃了。
理想情况下,您有一个包含音频和视频轨道的单一媒体文件,它们一开始就是同步的。所以,如果你能在服务器端处理这些东西,那就最好了。
如果您想要将音频/视频即时重新多路复用到MP4并通过Media Source Extensions推送,您可能会取得一些成功。这听起来像是一项很大的工程。我不知道有什么现成的东西可以完成这项任务。
另一种方法是使用Web audio API将音频延迟一定的毫秒数,这种方法只有在需要将音频推回某个固定数量的时候才有效。
另一种替代方法是,如果您要将音频/视频加载到单独的元素中,则可以同时播放它们,并使用playbackRate
property将它们漂移到您想要的同步中。
https://stackoverflow.com/questions/57062664
复制相似问题