如何解决如何跨浏览器正确处理 media.play() 承诺
我正在尝试使用 videojs 播放一些音频。由于自动播放在浏览器中不可靠,因此他们建议blog post on the video js website 这样做:
let audioPlayer = videojs('audio-element');
audioPlayer.ready(function() {
var promise = audioPlayer.play();
if (promise !== undefined) {
promise.then(function() {
console.log('AUDIO: Autoplay started!');
}).catch(function(error) {
console.log('AUDIO: Autoplay was prevented.');
// do something to let people start audio manually
});
}
});
这在 Chrome 和 Edge 中完美运行,但 Firefox 似乎永远无法解决这个承诺。使用调试器我可以看到它的状态挂起,但我的 console.logs 都没有被执行。
我怎样才能让它在 Firefox 中工作?
解决方法
我会这样做:
promise.then(function() {
// Autoplay started!
},function(error) {
// Autoplay was prevented.
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。