我知道我需要在Safari中的用户交互之后创建音频上下文。然而,下面的代码仍然不起作用。
HTML
<button onclick="play">Play</button>
简体中文
function play() {
var AudioContext = window.AudioContext || window.webkitAudioContext
var ctx = new AudioContext()
fetch('MP3_URL')
.then((response) => response.arrayBuffer())
.then((arrayBuffer) => ctx.decodeAudioData(arrayBuffer))
.then((audioBuffer) => {
var source = ctx.createBufferSource()
source.buffer = audioBuffer
source.connect(ctx.destination)
source.start(ctx.currentTime)
})
}
同样的代码在谷歌Chrome上工作,但Safari。
1条答案
按热度按时间8ftvxx2r1#
我觉得这没有什么意义,但是在这种情况下,Safari需要另一个push来启动
AudioContext
。在创建AudioContext
之后立即调用resume()
应该可以工作。