我有一个能够在除三星互联网浏览器之外的每个浏览器中播放mp4媒体(通过<video>
标签和通过DASH)的网站,三星互联网浏览器默认出现在三星Galaxy手机上,可能还有很多其他浏览器三星设备。
在台式机,iPad或者古老的HP TouchPad平板电脑上,它运行良好。使用同一个三星设备(例如Chrome)上的其他浏览器,mp4媒体播放效果很好,因此不受Android或设备硬件的限制。
我可以使用JavaScript检测三星浏览器并禁用这些设备上的视频内容,但我真的不想这样做。当然有一种解决方法。
如果你想在你的设备上试试,这是一个快速测试。它试图在一个页面上播放3种略有不同类型的mp4媒体:
在我的三星Galaxy S6上,它们都没有在三星互联网浏览器中播放。
我尝试使用video.js,但这并未改变行为。
更新:
自我发布这一年以来,三星终于更新了他们的浏览器,现在mp4内容正常播放,包括自动播放。
答案 0 :(得分:3)
我在Samsung Galaxy 7设备上遇到过三星浏览器(当前最新版本: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()
是否返回承诺和所有基本安全检查(因为这是支持的)在许多其他浏览器中)。
但是,它显示了处理这种自动播放不工作场景的想法。
我希望它有所帮助!
答案 1 :(得分:1)
三星的移动浏览器当时似乎不支持HTML5媒体源扩展(MSE) - 这些是DASH播放所必需的。
您可以使用多个在线链接在浏览器上测试MSE支持,例如:
答案 2 :(得分:0)
对我来说很好,如果需要播放多个视频,您可以使用静音。
<pre>
<video class="video" webkit-playsinline="" playsinline="" muted="" autoplay="" loop="" preload="auto" width="100%" height="auto" controles="">
<source src="wp-content/uploads/talkforweb.com.au.mp4" type="video/mp4">
</video>
</pre>