问题描述
当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 (将#修改为@)