问题: 我在切换 html5 音频标签上的静音属性时遇到问题。
平台: 仅适用于 iPod Touch (Safari) [iOS 5.0.1]。在 Chrome 中运行良好。
// This code resides in my click binding.
var audios = document.getElementsByTagName('audio')[0];
console.log(audios.muted); // returns false by default
if(audios.muted == true){
audios.muted = false;
}
else{
audios.muted = true;
}
在 chrome 中,console.log 将切换 true/false,但是在 iPod 上,它将始终保持 false。
根据docs:
在 iOS 设备上,音频电平始终在用户的物理控制之下。 volume 属性在 JavaScript 中不可设置。读取 volume 属性总是返回 1.
看起来你必须使用硬件开关。似乎在 iPhone 上音量开关不会影响 Safaris 音量(默认为铃声音量,除非正在播放声音,然后您可以调整 Safaris 音量),而在 iPod 上,音量开关会影响。
希望这对其他人有帮助。
从 Safari 16 开始,它们仍然不允许您通过 javascript 更改音量,但您可以将音频静音。您可以通过在音频对象上将
muted
设置为 true
轻松静音。
const audio = new Audio();
audio.muted = true // mutes audio
audio.muted = false // unmutes audio