2

クロム拡張機能に問題があります。拡張機能は、次のコードを使用して背景ページの<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); 
} 

答えて

関連する問題