问题描述
我正在开发一个多用户网页,当任何用户按下按钮时都会播放声音。该系统使用 websockets 来传达谁按下了什么以及何时按下。
当用户按下按钮启动声音时,它可以正常工作,并且当通过 websockets 从另一个用户接收到该声音时,该声音的未来播放可以正常工作。
当声音首先从 websockets 启动时,Safari 不会播放它,我理解这是因为它不是由用户的操作启动的。我遇到的问题是检测何时发生。
这是我的代码,从原始代码(包括剪切错误处理)中截取以包含我认为只是相关部分的内容:
var source = context.createBufferSource();
source.buffer = buffer; // tell the source which sound to play
context.createGainNode();
source.connect(volNode);
volNode.connect(context.destination);
volNode.gain.setValueAtTime(startVol,context.currentTime);
source.loop = false;
source.onended = function () {
console.log('Ended');
};
source.start();
检查 source
,我无法区分何时播放声音和何时不播放。 playbackState
在两种情况下都是 1,在两种情况下体积都是 1。
有没有办法判断它是否有效?如果失败,我想向用户展示一个播放按钮。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)