[英]Video error - Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause()
[英]How to handle Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause()
下面是我在aspx页面中的代码,允许在浏览器中播放wav格式的音频但是使用我当前的代码我无法在Chrome浏览器中播放wav音频,但它可以在Firefox中使用。 我该如何处理这个异常?
<script>
window.onload = function () { document.getElementById("audio").play(); }
window.addEventListener("load", function () { document.getElementById("audio").play(); });
</script>
<body>
<audio id='audio' controls autoplay>
<source src="Sounds/DPM317.wav" type="audio/wav" />
Your browser does not support the audio element.
</audio>
</body>
对于Chrome,他们更改了自动播放政策,因此您可以在此处阅读:
var promise = document.querySelector('audio').play();
if (promise !== undefined) {
promise.then(_ => {
// Autoplay started!
}).catch(error => {
// Autoplay was prevented.
// Show a "Play" button so that user can start playback.
});
}
我不知道这对你来说是否仍然存在,但我仍然留下我的评论,所以也许它会帮助别人。 我有同样的问题,@ dighan在bountysource.com/issues/上提出的解决方案为我解决了这个问题。
所以这是解决我的问题的代码:
var media = document.getElementById("YourVideo");
const playPromise = media.play();
if (playPromise !== null){
playPromise.catch(() => { media.play(); })
}
它仍然向控制台抛出错误,但至少视频正在播放:)
尝试使用catch块进行这样的回调。
document.getElementById("audio").play().catch(function() {
// do something
});
<video autoplay muted="muted" loop id="myVideo"> <source src="https://wrglob.net/Coastline-3581.mp4" type="video/mp4"> </video>
像这样的东西
将muted="muted"
属性添加到HTML5标签解决了我的问题
我使用的是Chrome 75版。
将静音属性添加到视频标记
<video id="myvid" muted>
然后使用javascript播放它并将muted设置为false
var myvideo = document.getElementById("myvid");
myvideo.play();
myvideo.muted = false;
编辑:需要用户交互(至少点击页面中的任意位置才能工作)
我是第二个Shobhit Verma,我有一个小小的补充说:在他的帖子中他告诉我在Chrome(自己为Opera)中玩家需要静音才能使自动播放成功...而且具有讽刺意味的是,如果你提升了加载后的音量,它仍然会播放...就像所有那些忽略隐形框架的反弹出机制滑入你的代码...... php-echoed html和javascript是:10秒setTimeout onLoad的body标签上升音量到最大,带自动播放的视频和静音='静音'(是的,$ muted_code部分=“静音='静音”)
echo "<body style='margin-bottom:0pt; margin-top:0pt; margin-left:0pt; margin-right:0pt' onLoad=\"setTimeout(function() {var vid = document.getElementById('hourglass_video'); vid.volume = 1.0;},10000);\">";
echo "<div id='hourglass_container' width='100%' height='100%' align='center' style='text-align:right; vertical-align:bottom'>";
echo "<video autoplay {$muted_code}title=\"!!! Pausing this video will immediately end your turn!!!\" oncontextmenu=\"dont_stop_hourglass(event);\" onPause=\"{$action}\" id='hourglass_video' frameborder='0' style='width:95%; margin-top:28%'>";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.