Merge pull request #2514 from Harold-Guo/fix/web_audio

fix(web-audio): Fix AudioWorklet recording and AudioContext state issues
This commit is contained in:
hrz
2025-11-13 11:33:56 +08:00
committed by GitHub
+12
View File
@@ -1430,6 +1430,13 @@
};
log('使用AudioWorklet处理音频', 'success');
// 需要连接输出,否则不会触发处理
// 我们创建一个静音通道
const silent = audioContext.createGain();
silent.gain.value = 0;
audioProcessor.connect(silent);
silent.connect(audioContext.destination);
return { node: audioProcessor, type: 'worklet' };
} else {
// 使用旧版ScriptProcessorNode作为回退方案
@@ -1604,6 +1611,11 @@
// 创建音频上下文和分析器
audioContext = getAudioContextInstance();
// 浏览器出于安全和性能考虑,新创建的 AudioContext 默认处于 suspended 状态,必须显式调用 resume() 才会开始处理音频。
if (audioContext.state === 'suspended') {
await audioContext.resume();
}
// 创建音频处理器
const processorResult = await createAudioProcessor();
if (!processorResult) {