Javascript 如何跨浏览器正确处理media.play()承诺

Javascript 如何跨浏览器正确处理media.play()承诺,javascript,firefox,promise,media-player,video.js,Javascript,Firefox,Promise,Media Player,Video.js,我正在尝试使用videojs播放一些音频。由于autoplay在不同浏览器中不可靠,因此有一个建议: let audioPlayer = videojs('audio-element'); audioPlayer.ready(function() { var promise = audioPlayer.play(); if (promise !== undefined) { promise.then(function() {

我正在尝试使用videojs播放一些音频。由于autoplay在不同浏览器中不可靠,因此有一个建议:

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.log

如何在Firefox中实现这一点?

我会:

promise.then(function() {
// Autoplay started!
}, function(error) {
// Autoplay was prevented.
});