我根据正在播放的音乐制作改变某些对象的游戏。每首歌曲结束后,我希望我的音频上下文加载到新的源中并进行分析。但是,每当我尝试这样做时,我都会遇到错误,即音频对象或缓冲区无法被调用两次。
经过一番研究后,我了解到ctx.createMediaElementSource(MyHTML5AudioEl)
允许您创建一个从HTML5对象获取源的sourceNode。通过这个,我能够循环播放不同的歌曲。
然而,对于我的游戏,我需要播放/分析30秒"远程网址"来自Spotify API。我可能错了,但ctx.createMediaElementSource(MyHTML5AudioEl)
不允许您分析远程站点上的源。
此外,游戏需要使用移动Chrome浏览器,createMediaElementSource(MyHTML5AudioEl)
似乎不起作用。
我可能走错了路,但我的主要问题是: 如何在网络音频api中切换远程歌曲网址。它与移动镀铬兼容。
谢谢!
答案 0 :(得分:2)
首先,正如您所发现的那样,您无法再为AudioBufferSource
设置缓冲区。解决方案是创建一个新的。 AudioBufferSource
旨在成为轻量级的对象,您可以轻松创建和使用它们。
其次,在Chrome 42及更新版本中,createMediaElementSource
需要适当的CORS访问权限,因此您必须确保远程网址发送相应的标头并正确设置crossOrigin
属性。
最后,Mobile Chrome目前不会通过createMediaElementSource
从音频元素传递数据。