クロム拡張機能に問題があります。拡張機能は、次のコードを使用して背景ページの<audio>
タグに接続するaudioContextを作成します。オーディオ終了時には、onClick()
がkill関数が呼び出されます。Chrome拡張機能webAudio APIがWindowsの省電力モードを停止します
再生中にpowercfg -requests
をWindowsシステムで実行すると、(予想通り)[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関数を呼び出すと、私は引き続き使用中の同じドライバが表示され、マシンはサスペンド/スリープ/休止しません。
背景ページを検査するとき、リストされた変数(オーディオに関連するすべて)はすべて未定義です。私が今までに見つけた唯一の治療法はバックグラウンドページをリロードすることです。これはスーパーハックであり、それが表すすべてのことを軽蔑します。
クロム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);
}
これはとても簡単です.... – TechnicalChaos