我是一个html5新手,对音频标签和网络音频应用编程接口有一些困惑。我目前正在为我们的音频播放器定制音频洗涤器。洗涤器将有一个进度条和某种时间指示器。用户应该能够拖动进度条和音频将播放。
当前的音频播放器一次只播放一小部分mp3,然后通过向服务器发送请求(轮询)定期加载它。我理解使用标签,你必须提供src,但考虑到加载的是小块而不是1个整体,我也在寻找是否可以从web音频api中捕获事件。创建和播放音频的方式是以以下方式使用web音频api:
soundSource = context.createBufferSource();
soundBuffer = context.createBuffer()
soundSource.buffer = soundBuffer;
soundSource.connect(context.destination);
我不明白的是音频标签和目的节点之间的关系。
如何将目的节点指向音频标签?是否可以从web音频api捕获事件(播放、暂停、时间更新)?本质上,我希望能够在流式音频播放器上编写事件侦听器,该播放器一次播放小块,并将它们都绑定到自定义滑块上。有没有人可以帮我或者提供一些建议?
戈登
发布于 2014-07-04 11:24:21
好的。我不认为您可以将context.destination
的输出重定向到任何其他组件。您可以考虑使用context.destination
作为扬声器。无论您发送给它的是什么,都会立即显示出来。
所以Audio和WebAudio标签之间没有太多的关系。在各种浏览器中的音频标签实现可能实际上是在幕后使用WebAudioAPI,但是没有任何面向公众的API来改变音频标签的行为。
不过,音频标签支持所有的standard Media Events。
然而,在Audio标签和WebAudio应用程序接口之间有一座很小的桥。您可以将音频标签中的音频用作WebAudioAPI中的音频源。这是context.createMediaElementSource API in WebAudio。
最后,擦洗。如果你想要擦除“实时”,你必须将整个音频文件存储在内存中。这样,你几乎可以立即跳转到用户想要移动到的位置。有了AudioBuffer
,您就可以使用ScriptProcessorNode根据滑块的位置来校正输出的音频块。
https://stackoverflow.com/questions/24559772
复制相似问题