数分間PCを操作しないとサウンドデバイスが無効化されて無音になる問題の解決策をメモメモ…
ここ数か月「いつの間にかサウンドデバイスが認識されなくなる」「システム音が無音になったり音声の冒頭が切れたりする(フェードインになる)」という問題に悩まされていたのですが、レジストリキーの値を編集することでひとまず解決しました。同じ症状で困っている人がいるかもしれないので一応メモしておきます。
環境&症状
- OSはWindows10
- サウンドドライバはNVIDIA High Definition Audio(バージョン1.3.38.60)
- NVIDIA製GPU(RTX30シリーズ)のHDMI端子からモニターに接続し、そのモニターのオーディオ端子にヘッドホンを挿している状態
- しばらく無操作の状態が続くとサウンドデバイスの接続が切断されPC本体のマザーボードからの音声出力(Realtek Digital Output)に勝手に切り替わる
- システム音の出だしがフェードインしたような状態で再生される(いわゆる頭切れ)
- 接続が切れるまでの時間はまちまちで、モニターがスタンバイ状態かどうかは無関係っぽい
- サウンドコントロールパネルを開くとすぐにデバイスが正しく認識され有効になる
解決策その1 デバイスの排他モードをオフにする
- サウンドコントロールパネルを開く (タスクバーの音量アイコンを右クリック→「サウンド」を選択)
- 「再生」タブから対象のデバイスを右クリックして「プロパティ」を開く
- 「詳細」タブに移動して「アプリケーションによりこのデバイスを排他的に制御できるようにする」のチェックをはずす
解決策その2 ドライバを過去バージョンに戻す
続いて、とりあえずドライバのプロパティ画面から「ドライバを元に戻す」を実行し以前のバージョン(1.3.38.40)に戻してみたところ、上記の問題は発生しなくなりました。ただ、以前のバージョンを維持するにはドライバの自動更新を無効化しておく必要があります。それはちょっとマズいかも…ということでさらに別の方法を模索することに。
解決策その3 レジストリキーをいじる
他の解決策がないかググったところ、どうやら「デバイスが一定時間アイドル状態になったときにドライバ側で無効化する機能が働いている場合がある」という情報を発見。これはレジストリキーの値を弄ることでオフにできるとのことなので次の手順で値を書きかえました。
レジストリの値を変更すると予期しない不具合が発生する可能性があります。「レジストリ」が何なのかよくわからない、手順が難しい、という人は触らないほうが無難です。次の方法を試す場合は自己責任でお願いします。
- レジストリエディターを開くファイル名を指定して実行(Win+R)→regedit。
- 次のキーを探すHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96c-e325-11ce-bfc1-08002be10318}\xxxx\PowerSettingsただし上記の xxxx の部分は環境によって異なるので注意(ちなみに自分の環境では 0000 だった)。DriverDescの値が対象のドライバ名(今回は"NVIDIA High Definition Audio")になっているはずなのでよく確認すること。
- 値を次のように書き換える(「バイナリデータの修正」)ConservationIdleTime → ff ff ff ff
IdlePowerState → 00 00 00 00
PerformanceIdleTime → ff ff ff ff - PCを再起動して変更後の値のままになっていることを確認する
以上です。レジストリキーを書き換えてしばらく様子を見ましたが今のところサウンドデバイスが無効化されたり無音になったりする症状は出ていません。自分の環境ではこの方法で無事解決しましたが、もちろんこれで直るとは限らないので、改善が見られない場合はもとの値に戻して別の原因を探ってください。
大変助かります。
返信削除これで直りました。
ありがとうございます。