【发布时间】:2019-05-31 12:53:18
【问题描述】:
由于 Apple 在没有用户交互的情况下在 javascript 中禁用了通过 HTMLMediaElement.play()
自动播放音频的功能,因此我不确定当用户在页面加载后与 DOM 交互之前收到聊天消息时我应该如何播放声音。
socket.on("receive message", data => {
const receiveSound = new Audio("1.mp3");
messages.push(data);
receiveSound.play();
});
我尝试在 mousemove 事件中播放音频元素。我还尝试通过 React ref 上的元素伪造 click() 以最初激活它。两种解决方案都不起作用。
如果有消息进来,有没有办法自动播放音频元素?这一定是可能的,因为 YouTube 可以在没有交互的情况下自动播放视频。
每次我尝试播放音频时,都会收到此错误:
Unhandled Rejection (NotAllowedError): The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
【问题讨论】:
标签: javascript ios macos safari html5-audio