等待HTMLMediaElement.play承诺的解析,然后再调用pause

问题描述

当play()返回的承诺尚未解决时,我有一种情况可以调用pause()。调用pause()时,我从浏览器中收到错误AbortError。在我的情况下,此错误是由常见的errorHandler处理的,该错误处理程序又将其显示在用户不满意的UI中。

类似的代码已被删除:

errorHandler = function(){} //Error handler showing error in UI.
var audio_el = document.body.appendChild(document.createElement("audio")
PlayMedia(newSrc) {
    audio_el.src = newSrc;
    try {
       var playPromise = audio_el.play();
       Promise.resolve(playPromise).catch(errorHandler)
    } catch(err) {
       errorHandler(err);
    }
}

StopMedia() {
   if (audio) {
        audio_el.pause();
        audio_el.currentTime = 0;
   }
}

我必须先用相同或不同的src呼叫StopMedia()来呼叫PlayMedia()。由于audio_el.pause(audio_el.src = newSrc(更改src也会在内部引起暂停触发),由于此浏览器浏览器引发错误{{1} }

如何在调用pause之前等待play()promise的解析?或如何避免AbortError? 有没有一种方法可以在不引发浏览器异常的情况下中止播放?

注意:多次单击媒体元素会导致上述两个函数调用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...