Javascript 使用setInterval播放音频时Safari出现问题

Javascript 使用setInterval播放音频时Safari出现问题,javascript,setinterval,html5-audio,Javascript,Setinterval,Html5 Audio,为什么这在Chrome、Firefox和Opera中有效,而在Safari(11.1)中无效? 尝试在Safari中运行它将导致音频文件仅播放一次,不会出现错误。日志记录确认setInterval仍在运行 const-sound=新音频('sound.mp3'); const play=()=>sound.play(); const handleClick=()=>window.setInterval(play,500); const el=document.getElementById('p

为什么这在Chrome、Firefox和Opera中有效,而在Safari(11.1)中无效? 尝试在Safari中运行它将导致音频文件仅播放一次,不会出现错误。日志记录确认setInterval仍在运行

const-sound=新音频('sound.mp3');
const play=()=>sound.play();
const handleClick=()=>window.setInterval(play,500);
const el=document.getElementById('play');
el.addEventListener('click',handleClick)

Safari 11包含了一项新功能,在该功能中,播放任何媒体都需要用户交互。这意味着,如果您按照以下语句执行播放,音频将播放:

const handleClick = play;
单击和播放之间的任何事件都不会播放音频。就像你的情况一样

谷歌Chrome64也引入了这一功能


为什么设置间隔?如果您想在一段时间后播放,请将其更改为setTimeout。问题/错误是什么?@karthick:音频应在一次播放中播放多次row@baao:(我在描述中添加了更多信息)在Safari中运行时,声音会播放一次,setInterval会继续执行(例如console.logs仍在执行)但是音频没有被正确播放,我很确定safari会阻止它,就像自动播放视频一样。