Chrome 扩展 webAudio API 停止 Windows 省电模式
Chrome Extension webAudio API stops Windows power saving modes
我的 chrome 扩展有问题。该扩展使用以下代码创建一个连接到背景页面上的 <audio>
标记的 audioContext。在音频端 onClick()
调用 kill 函数。
在 windows 系统上执行 powercfg -requests
时,我看到(预期)[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_01&VEN_111D&DEV_76D5&SUBSYS_1028040A&REV_1001&143c5ca7&0&0001)
An audio stream is currently in use.
。然而,当调用 kill 函数时,我仍然看到相同的驱动程序正在使用消息,并且机器不会 suspend/sleep/hibernate。
检查后台页面时,列出的变量 - 所有与音频相关的变量 - 都是未定义的。到目前为止,我发现的唯一解决方法是重新加载背景页面——一个超级黑客,我鄙视它所代表的一切。
有没有人有类似的经历或了解 chrome webaudio API 内心的恶魔?
注意事项:
在演示代码的上下文中,变量是全局的。在实时代码中,这些是本地范围。
干杯,
菲尔.
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()
。
我的 chrome 扩展有问题。该扩展使用以下代码创建一个连接到背景页面上的 <audio>
标记的 audioContext。在音频端 onClick()
调用 kill 函数。
在 windows 系统上执行 powercfg -requests
时,我看到(预期)[DRIVER] High Definition Audio Device (HDAUDIO\FUNC_01&VEN_111D&DEV_76D5&SUBSYS_1028040A&REV_1001&143c5ca7&0&0001)
An audio stream is currently in use.
。然而,当调用 kill 函数时,我仍然看到相同的驱动程序正在使用消息,并且机器不会 suspend/sleep/hibernate。
检查后台页面时,列出的变量 - 所有与音频相关的变量 - 都是未定义的。到目前为止,我发现的唯一解决方法是重新加载背景页面——一个超级黑客,我鄙视它所代表的一切。
有没有人有类似的经历或了解 chrome webaudio API 内心的恶魔?
注意事项: 在演示代码的上下文中,变量是全局的。在实时代码中,这些是本地范围。
干杯, 菲尔.
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()
。