Javascript 尝试播放音频时不断出错-为什么?

Javascript 尝试播放音频时不断出错-为什么?,javascript,audio,Javascript,Audio,当我尝试使用下面的Js在我的chrome book上播放音频时,我一直收到这条消息: “DomeException:play()失败,因为用户没有首先与文档交互。” addEventListener('load',(事件)=>{ log(“页面已完全加载”); console.log(“播放音乐”); var audioElement=新音频('indie.mp3').play(); 如果(audioElement!==未定义){ audioElement.then(=>{ //自动播放开始了

当我尝试使用下面的Js在我的chrome book上播放音频时,我一直收到这条消息:

“DomeException:play()失败,因为用户没有首先与文档交互。”


addEventListener('load',(事件)=>{
log(“页面已完全加载”);
console.log(“播放音乐”);
var audioElement=新音频('indie.mp3').play();
如果(audioElement!==未定义){
audioElement.then(=>{
//自动播放开始了!
}).catch(错误=>{
//自动播放被阻止。
//显示“播放”按钮,以便用户可以开始播放。
console.log(错误);
});  
}  
});  

进行web开发时的首要规则是。。。一旦你这么做了,当我运行你的代码时,我会看到下面的控制台错误(你会看到一个类似于我在firefox上的文字的错误,其他浏览器显示不同的文字)

DomeException:当前上下文中的用户代理或平台不允许播放方法,可能是因为用户拒绝了权限

在英语中,这意味着网页试图在未经最终用户许可的情况下在加载后立即播放音频。。。几年前,业界对自动播放音频的网页进行了反击,所以所有浏览器都同意屏蔽自动播放音频的代码。。。单击按钮后,下面的操作将播放音频

<!DOCTYPE html>
<html>

    <!-- https://www.w3schools.com/jsref/met_audio_play.asp -->
    <!-- https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_audio_play -->
    <!-- http://www.html5rocks.com/en/tutorials/webaudio/intro/ -->
    <head>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    </head>
    <body>
        <audio id="myAudio">
            <!-- <source src="horse.mp3" type="audio/mpeg" /> -->
            <!-- above also works if mp3 file is local to same dir as this html file  -->
            <source src="https://www.w3schools.com/jsref/horse.mp3" type="audio/mpeg">

            Your browser does not support the audio element.
        </audio>

        <button onclick="playAudio()" type="button">Play Audio</button>
        <button onclick="pauseAudio()" type="button">Pause Audio</button>

        <script>
            var x = document.getElementById("myAudio");

            function playAudio() {
                x.play();
            }

            function pauseAudio() {
                x.pause();
            }
        </script>
    </body>
</html>

您的浏览器不支持音频元素。
播放音频
暂停音频
var x=document.getElementById(“myAudio”);
函数playAudio(){
x、 play();
}
函数pauseAudio(){
x、 暂停();
}

以上代码是从作为注释嵌入的链接中获取的。。。webdev是一个流动的工作体,因此从当前符合当今现实的教程中学习非常重要。。。享受并欢迎使用音频处理

好的,谢谢-因此,未经最终用户许可,音乐无法播放-工作完成后。。。在我将事件更改为单击后,我意识到它是基于用户的文档交互的-我只是希望错误引用的页面能够像您那样解释事情。音频最近在这里停止工作。许可是几周前授予的。在我明确阻止该页面的音频并重新授予权限后,声音再次开始工作(Firefox)。
<!DOCTYPE html>
<html>

    <!-- https://www.w3schools.com/jsref/met_audio_play.asp -->
    <!-- https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_audio_play -->
    <!-- http://www.html5rocks.com/en/tutorials/webaudio/intro/ -->
    <head>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    </head>
    <body>
        <audio id="myAudio">
            <!-- <source src="horse.mp3" type="audio/mpeg" /> -->
            <!-- above also works if mp3 file is local to same dir as this html file  -->
            <source src="https://www.w3schools.com/jsref/horse.mp3" type="audio/mpeg">

            Your browser does not support the audio element.
        </audio>

        <button onclick="playAudio()" type="button">Play Audio</button>
        <button onclick="pauseAudio()" type="button">Pause Audio</button>

        <script>
            var x = document.getElementById("myAudio");

            function playAudio() {
                x.play();
            }

            function pauseAudio() {
                x.pause();
            }
        </script>
    </body>
</html>