Chrome扩展webAudio API停止Windows节能模式

Chrome Extension webAudio API stops Windows power saving modes

本文关键字:Windows 节能模式 停止 API 扩展 webAudio Chrome      更新时间:2023-09-26

我有一个chrome扩展的问题。该扩展创建了一个audioContext,它使用以下代码连接到后台页面上的<audio>标签。在音频端onClick()上调用kill函数。

当播放时,我在windows系统上执行powercfg -requests时看到(预期)[DRIVER] High Definition Audio Device (HDAUDIO'FUNC_01&VEN_111D&DEV_76D5&SUBSYS_1028040A&REV_1001'4&143c5ca7&0&0001) An audio stream is currently in use.。然而,当调用kill函数时,我仍然看到相同的驱动程序在使用消息,机器不会挂起/休眠/休眠。

当检查后台页面时,列出的变量——所有与音频相关的变量——都是未定义的。到目前为止,我找到的唯一解决办法是重新加载背景页——这是一个超硬的东西,我鄙视它所代表的一切。

有类似经历或了解chrome网络音频API内部恶魔的人吗?

注意事项:这些变量在演示代码的上下文中是全局的。在活动代码中,这些是本地范围。

干杯,Phil.

function kill_audio_context(){
    capAudio.remove();
    capAudio = undefined;
    try{
        analyser.disconnect();
        source.disconnect();
        audioContext = undefined;
        source=undefined; 
        analyser=undefined;
    }catch(e){console.log(e)} 
    // No errors, except expected when no audio element exists (first load)
    // KILL IT WITH FIRE!!
    //chrome.runtime.reload();
}
function load_audio_context(){
    audioContext = new AudioContext();
    analyser = audioContext.createAnalyser();
    analyser.fftSize = 2048;
    source = audioContext.createMediaElementSource(capAudio);
    source.connect(analyser);
    analyser.connect(audioContext.destination);
}
想要释放AudioContext时,请调用audioContext.close()