今天要做一个网页的音频测试,需要自动播放背景音乐。代码如下:
& lt音频id = & # 34myAudio & # 34src = & # 34/audio/victory . MP3 & # 34;控件= & # 34;控制& # 34;自动播放= & # 34;自动播放& # 34;& gt 您的浏览器不支持音频元素。 & lt;/audio & gt;但是无论我怎么设置,打开后界面都无法正常播放。我需要手动点击播放按钮来播放它。我需要的是自动播放。
Chrome浏览器不支持自动播放吗?但是,当我在其他网站上找到一个例子并运行它时,它的自动播放没有任何问题。
只要点击按钮运行代码就会自动播放,而我的不能。这是怎么回事?
自动播放不行,我就试着用JS时控播放器手动播放。
function toggleSound(){ var music = document . getelementbyid(& # 34;myAudio & # 34);//Get ID console.log(音乐); console . log(music . paused); if (music.paused) {//判断是否播放 music . paused = false; music . play();//Play } } setinterval(& # 34;toggleSound()& # 34;, 1);通过输出日志发现了问题的关键点:
play()失败,因为用户没有& # 39;不要先与文档交互。翻译过来,就是用户还没有和浏览器交互。然后我试着在浏览器里随便点一下,它就自动播放了。
然后我上网查了资料,是Chrome改变了规则:如果用户没有任何交互操作,就不会自动播放。这个改动的目的主要是防止扰民。想想夜深人静的时候,随便打开一个网页然后自动播放一个声音,真的很吓人。还有,如果同时打开很多网页,每个网页都会自动播放声音,会很乱,用户与之交互后会播放哪个页面的声音,确实提高了用户体验。
明白了道理就不会纠结了。如果你想让它播放,只需点击页面上的任何地方。