我正在尝试确定浏览器是否支持加载时自动播放.
我正在使用以下代码,它在Android Chrome上工作正常,但对于桌面Chrome,.catch或.then中的所有行都没有执行.承诺似乎只是无休止地回复未决承诺.
这是一个真正的Chrome错误还是我不明白Promises如何在这里工作?
const promise = document.createElement('video').play();
if (promise instanceof Promise) {
promise.catch((error) => {
// Check if it is the right error
if (error.name === 'NotAllowedError') {
autoPlayAllowed = false;
} else {
throw error;
}
}).then(() => {
if (autoPlayAllowed) {
// Autoplay is allowed - continue with initialization
console.log('autoplay allowed')
} else {
// Autoplay is not allowed - wait for the user to trigger the play button manually
console.log('autoplay NOT allowed')
}
});
} else …Run Code Online (Sandbox Code Playgroud)