尝试为 WebRTC 音频上下文添加麦克风音量控制时,Firefox 37 抛出错误
Firefox 37 throwing error when trying to add microphone volume control for WebRTC audio context
自 firefox 37 以来我无法将音量控制添加到输入(麦克风),我收到错误消息:
IndexSizeError: Index or size is negative or greater than the allowed amount
它在 Chrome 上工作正常。
这是代码示例:
var audioContext = new (window.AudioContext || window.webkitAudioContext)(); // define audio context
var microphone = audioContext.createMediaStreamDestination();
var gain = audioContext.createGain();
var speaker = audioContext.createMediaStreamDestination(gain);
gain.gain.value = 1;
microphone.connect(gain);
gain.connect(speaker);
此处抛出错误:
microphone.connect(增益);
奇怪的是,它每晚都可以在 firefox 上运行。
此错误与此 Whosebug 类似:
相关link:
link on Whosebug
你不应该用这个做麦克风吗?
var microphone = audioContext.createMediaStreamSource();
而不是这个
var microphone = audioContext.createMediaStreamDestination();
麦克风不是目的地。这是一个来源。
首先我觉得应该是
var microphone = audioContext.createMediaStreamSource(stream);
这里的stream是麦克风音频流。查找更多信息 here。
另请查看此 demo with elaboration here。它与您正在尝试的类似。将 createMediaElementSource 替换为 createMediaStreamSource 即可。
自 firefox 37 以来我无法将音量控制添加到输入(麦克风),我收到错误消息:
IndexSizeError: Index or size is negative or greater than the allowed amount
它在 Chrome 上工作正常。
这是代码示例:
var audioContext = new (window.AudioContext || window.webkitAudioContext)(); // define audio context
var microphone = audioContext.createMediaStreamDestination();
var gain = audioContext.createGain();
var speaker = audioContext.createMediaStreamDestination(gain);
gain.gain.value = 1;
microphone.connect(gain);
gain.connect(speaker);
此处抛出错误:
microphone.connect(增益);
奇怪的是,它每晚都可以在 firefox 上运行。
此错误与此 Whosebug 类似:
相关link: link on Whosebug
你不应该用这个做麦克风吗?
var microphone = audioContext.createMediaStreamSource();
而不是这个
var microphone = audioContext.createMediaStreamDestination();
麦克风不是目的地。这是一个来源。
首先我觉得应该是
var microphone = audioContext.createMediaStreamSource(stream);
这里的stream是麦克风音频流。查找更多信息 here。
另请查看此 demo with elaboration here。它与您正在尝试的类似。将 createMediaElementSource 替换为 createMediaStreamSource 即可。