gpt4 book ai didi

javascript - 测试浏览器是否支持未静音播放内联视频

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:00 24 4
gpt4 key购买 nike

如何测试视频是否在不静音的情况下在线播放?

我自己尝试过创建一小段自动播放小视频 (20kb) 的脚本。根据视频是否正在“播放”返回一个 bool 值。

这似乎是有效的。在 iOS 上,它返回 false。在桌面上它返回 true。

但是,我想征求其他意见,看看这是否是运行测试的正确方法。

JS:

var $video = $('video');

$video.on( 'loadstart', function(){
setTimeout(function(){
alert( isUnmutedInlineSupported() ? 'supported' : 'unsupported' );
}, 500);
});

function isUnmutedInlineSupported(){
if( !$video[0].paused && $video[0].currentTime > 0 ) {
//playsinline unmuted supported
return true;
} else {
//playsinline unmuted unsupported
return false;
}
}

HTML:

<video playsinline loop autoplay poster="https://placehold.it/1600x900">
<source src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/214327/html5-video-sound-test.mp4" type="video/mp4" />
</video>

https://codepen.io/hassforshort/pen/baXrXo

最佳答案

这是检查视频是否已开始的最佳方式。由 webkit 在 https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/ 推荐

var promise = document.querySelector('video').play();

if (promise !== undefined) {
promise.catch(error => {
// Auto-play was prevented
// Show a Play Button to let the user manually start playback
}).then(() => {
// Auto-play started
});
}

您的代码可能适用于某些桌面浏览器,但不适用于移动设备。不同的设备对视频的支持不同,只有少数设备支持自动播放有声视频。

关于javascript - 测试浏览器是否支持未静音播放内联视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48465395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com