Oneshot Gems
立即玩

游戏开发者指南

让播放器有意识地启动声音

假设声音已开始的游戏可能会显示静音图标,同时保持静音。浏览器通常会限制脚本启动的音频,直到用户做出手势,并且媒体播放请求可以在延迟后拒绝或解决。设计第一个交互来建立播放器的音频选择,然后根据实际播放结果更新界面。这提高了可预测性,并避免用他们没有预料到的声音让人们感到惊讶。

本页内容

让声音成为明确的第一个行动的一部分

如果游戏默认认为声音已经开始播放,可能会显示静音图标,但实际仍然没有声音。浏览器通常会限制脚本启动的音频,直到用户进行操作;媒体播放请求也可能被拒绝或延迟完成。应在首次交互时确定玩家的音频选择,并根据实际播放结果更新界面。这样行为更可预测,也不会用意外的声音吓到玩家。

测试新页面加载和从另一个选项卡返回。尝试阻止自动播放的浏览器配置、静音系统和缓慢的音频资源。确认游戏的视觉开始不受可选音效的影响,并且如果音频尚未开始,控制标签保持真实。

保持反馈和音频状态一致

不要将对 play() 的成功调用与即时声音输出等同起来。该承诺可能会异步解决,并且浏览器可能会请求许可。处理拒绝,在有用的情况下公开重试操作,并且在只有声音不可用时不报告暗示整个游戏失败的错误。

将用户偏好与运行时权限分开:保存的静音选择是播放器的意图,而当前是否允许播放是浏览器条件。独立测试静音、取消静音、暂停、恢复和场景转换,这样效果就不会在状态更改后意外地以最大音量重新启动。

关于⁨浏览器游戏音频启动⁩的常见问题

我可以在页面加载后自动播放游戏音乐吗?

不要假设一定能自动播放。自动播放规则可能会阻止未经用户操作启动的有声媒体和 Web Audio。应提供由玩家主动触发的操作,并处理播放失败。

如果播放被阻止,声音按钮应该显示什么?

根据实际观察到的结果,显示准确状态,例如“声音已关闭”或开启声音的操作。MDN 建议处理 play() 返回的 Promise,而不要假设播放已经开始。

延伸阅读

发现信息过时了? 报告需要更正的内容

继续玩下去。

免费浏览器游戏,随时等你开玩。发现喜欢的游戏,让它成为你的下一个最爱。

跟随好奇心探索