Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何在web音频上下文中更改源_Html_Api_Google Chrome_Audio_Web Audio Api - Fatal编程技术网

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,根据您提供的信息,我想出了一个合适的解决方案!