我有一个网站,该网站能够<video>
在除三星Internet浏览器之外的所有浏览器中播放mp4媒体(通过标签和通过DASH),三星Internet浏览器默认将它作为默认设置,并且可能是许多其他三星设备。
在台式机,iPad甚至是老式的HP TouchPad平板电脑上,它都可以正常工作。使用同一三星设备(例如Chrome)上的其他浏览器,mp4媒体可以正常播放,因此,它不是Android或设备硬件的限制。
我可以使用JavaScript检测三星浏览器并禁用这些设备上的视频内容,但我真的不想这样做。当然,有一种解决方法。
如果您想在设备上尝试一下,这是一个快速测试。它尝试在一页上播放3种类型略有不同的mp4媒体:
在我的Samsung Galaxy S6上,它们都无法在Samsung Internet浏览器中播放。
我尝试使用video.js,但这并没有改变行为。
更新:
自发布此书以来的一年,三星终于更新了他们的浏览器,并且mp4内容现在可以正确播放,包括自动播放。
我在Samsung Galaxy 7设备上的Samsung Browser(当前最新版本:v6.2.01.12)上遇到了相同的问题。就我而言,我正在使用video.js,并播放HLS。我发现的问题是自动播放无法正常工作。我的解决方案是尝试以编程方式播放视频,如果检测到故障(承诺拒绝),然后显示“播放”按钮,然后在用户单击中播放视频。那对我有用。就像这样:
const video = document.getElementById('my-video');
video.play()
.catch((err) => {
if (err.name === 'NotAllowedError') {
// Display PLAY button with a click event listener and play the video there.
}
});
这是一个简化的代码,我进行了特定的检查以查看my-video是否为实际<video>
元素,并且是否video.play()
返回promise和所有基本的安全检查(因为许多其他浏览器都支持此检查)。但是,它显示了处理此自动播放不起作用方案的想法。
希望对您有所帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句