我尝试重新使用音频元素但是我在Chrome中遇到以下错误:
(index):52 Uncaught InvalidStateError:无法执行 ' createMediaElementSource' on' AudioContext':HTMLMediaElement已经 先前连接到不同的MediaElementSourceNode。
window.audioContext = new(window.AudioContext || window.webkitAudioContext)();
var sourceNode
var scripNode
function create() {
scriptNode = window.audioContext.createScriptProcessor(4096);
sourceNode = window.audioContext.createMediaElementSource(document.getElementById('audio'));
sourceNode.connect(scriptNode);
scriptNode.connect(window.audioContext.destination);
}
function destroy() {
sourceNode.disconnect();
scriptNode.disconnect();
}
create();
setTimeout(function() {
destroy();
create();
}, 200);
使用网络音频清理的正确方法是什么,以便可以重复使用媒体元素?
答案 0 :(得分:0)
我认为这是Chrome中长期存在的问题。我认为有很多方法,但你没有表明你真正想做的事情,所以很难说出适当的解决方法是什么。
答案 1 :(得分:0)
您没有破坏节点sourceNode,只是将它们断开连接。为什么不重新连接音频节点,因为你使用的是同一个音频节点,另一个音频图或者你正在尝试做什么?
否则,您可以删除HTML音频元素,重新创建它,然后以这种方式重新连接。