Html 如何在web音频上下文中更改源
我正在制作一个游戏,根据播放的音乐改变它的一些对象。在每首歌结束后,我希望我的音频上下文加载到一个新的源中并进行分析。然而,每当我尝试这样做时,我都会得到一个错误,即音频对象或缓冲区不能被调用两次 经过一些研究,我了解到,Html 如何在web音频上下文中更改源,html,api,google-chrome,audio,web-audio-api,Html,Api,Google Chrome,Audio,Web Audio Api,我正在制作一个游戏,根据播放的音乐改变它的一些对象。在每首歌结束后,我希望我的音频上下文加载到一个新的源中并进行分析。然而,每当我尝试这样做时,我都会得到一个错误,即音频对象或缓冲区不能被调用两次 经过一些研究,我了解到,ctx.createMediaElementSource(MyHTML5AudioEl)允许您创建一个从HTML5对象获取源代码的sourceNode。有了这首歌,我可以循环播放不同的歌曲 然而,对于我的游戏,我需要玩/分析SpotifyAPI中30秒的“远程url”。我可能错
ctx.createMediaElementSource(MyHTML5AudioEl)
允许您创建一个从HTML5对象获取源代码的sourceNode。有了这首歌,我可以循环播放不同的歌曲
然而,对于我的游戏,我需要玩/分析SpotifyAPI中30秒的“远程url”。我可能错了,但是ctx.createMediaElementSource(MyHTML5AudioEl)
不允许您分析远程站点上的源代码
此外,游戏还需要在移动Chrome上运行,createMediaElementSource(MyHTML5AudioEl)
似乎无法在移动Chrome上运行
我可能在这条路上走错了路,但我的主要问题是:
如何在web audio api中切换远程歌曲URL。与手机chrome兼容
谢谢 首先,正如您所发现的,您不能为
AudioBufferSource
再次设置缓冲区。解决方案是创建一个新的AudioBufferSource
s旨在成为轻量级对象,您可以轻松创建和使用
其次,在Chrome 42和更新版本中,createMediaElementSource
需要适当的CORS访问,因此您必须确保远程url发送适当的头,并适当设置crossOrigin
属性
最后,Mobile Chrome目前无法通过
createMediaElementSource
传递音频元素的数据。非常感谢您的awnsers,根据您提供的信息,我想出了一个合适的解决方案!