【发布时间】:2021-09-04 08:12:03
【问题描述】:
我希望 Stack Overflow 社区中的某个人能够为此提供解决方法。很长一段时间以来,它一直是我心中的一根刺。
我的要求很简单:淡入音量以在页面上播放音频。
使用 javascript 有几种方法可以做到这一点:
-
更新
HTMLAudioElement上的“volume”属性。这对 iOS 设备根本不起作用,因为该属性对于操作系统是只读的。 -
使用 Web Audio API
AudioContext.createMediaElementSource()和GainNode。 这目前有效,但声音输出通常会失真 - 爆裂声和爆裂声会破坏任何流式音频的体验。这不是由 AudioContext 使用不同的采样率引起的。 -
将 Web Audio API
AudioBuffer与通过XMLHttpRequest下载的文件和arraybuffer响应类型一起使用。 这似乎根本没有音量。它适用于模拟器,但不适用于物理设备。
这三种方法几乎适用于任何设备上的任何浏览器,但现代 iOS 设备除外。 13 之前的 iOS 版本适用于方法 2 或 3。我并不是说所有的阴谋论者,但苹果会故意破坏 PWA 支持以将更多收入输送到他们的应用商店吗?
【问题讨论】:
-
你能公布你对第三种方法的尝试吗?
-
事实证明这种方法现在有效。在某一时刻,它不起作用。不知道为什么,我没有用于测试的 iOS 设备来找出原因。
-
@BruceHamilton 你有没有找到任何解决方案来支持在流式传输音频时褪色?
标签: javascript ios progressive-web-apps web-audio-api