2024年7月21日日曜日

Windowsのオーディオデバイス出てこない問題。強引に解決!、か?

骨伝導ヘッドフォンで有名なShokzのTitaniumヘッドセットを愛用していたのですが、2023年にノートPCを新調してしばらく経ってから、なぜか動作しなくなっていました。その解決方法を強引に見つけたので、いちおう情報共有しておきます。

「いちおう」と枕詞を付けたのは、原因を完全に解明できていないこととレジストリを強引に変更するという荒業を使ったので、誰にでも推奨できる方法ではないからです。なので、この方法を試す場合は「自己責任」でお願いします。この方法でどんなトラブルが発生しても、いっさい責任は持てません!

で、その方法とは、

  • レジストリエディタでHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Renderの直下にある各キー(各デバイス)を開いて、DeviceState値を変更する

という方法です。

私のケースでは、ShokzのTitaniumというBluetoothヘッドセットでの問題だったので、"Titanium"というキーワードで該当しそうなレジストリキーを推定した上で、上記のDeviceState値が怪しい値だったので、これを適当と思われる値に書き換えました。「怪しい値」と勝手に決めつけて、「適当と思われる値」を書くという、本当に「適当過ぎる」方法なので怖い方法であることは間違いないです。


問題が出ていた状態では、レジストリ中のDeviceState値に0x8000004のような値が入っていました。DeviceState値の正しい意味は調べがつかなかったのですが、ネット情報として見たのは、

  • 0x00000001のとき、そのオーディオデバイスは許可されている(使用可能)
  • 0x10000001のとき、そのオーディオデバイスは許可されていない(使用不可)

という情報です。上位の0x10000000部分が使用可/不可のフラグであるっぽいですし、この部分の数値が0x8000xxxxになっているのは問題を起こしていたTitaniumだけだったので、この値が怪しいと推測し使用可能な状態として0x00000001のような値を書いて直ったらラッキー!というくらいの浅い考えで進めています(要は、ダメもと)。

で、具体的にやったことは、このレジストリキーRenderの下の各キーについて、DeviceStateがこの怪しいそうな0x8000xxxxになっているものをすべて、0x1000xxxxに書き換えました。その後、念のためWindowsを再起動してから、おもむろにTitaniumをBluetoothで接続すると、オーディオデバイスとしてちゃんと認識するようになりました。


レジストリエディタで下のようにキーワードで当たりをつけておいてから、


下記のようにレジストリ値を変更しました(下記の例では、元の値が0x80000004だったので、これを0x00000004に変更)。



今回は、Bluetoothヘッドセットで起きた問題でしたが、おそらくBluetoothかどうは関係がないと推測しています。理由は、

  • Bluetoothデバイスとしてはちゃんとペアリングも認識もできていた
  • デバイスマネージャのBluetoothカテゴリでも、ちゃんと動作しているように見えた(もちろんBluetooth側ドライバもちゃんとインストール済)
  • 同じくデバイスマネージャの「サウンド、ビデオ、およびゲームコントローラ」カテゴリにもTitaniumがちゃんと入っていて、ドライバも動作しているように見えていた
  • PC内蔵のBluetoothホストを止めて、USB-Bluetoothドングルを使っても不具合は解消されなかった(つまり、Bluetooth側のドライバの問題ではなさそうと判断)
  • しかし、デバイスマネージャの「オーディオの入力および出力」カテゴリには、どうしても現れなかった(他のオーディオデバイスはちゃんと出ている)
  • Windows11のシステム設定→システム→サウンド→すべてのサウンドデバイスを開いてみても、ここに問題だったTitaniumが現れることはなかった(他のオーディオデバイスは問題なかった)
  • 別のPC(Windows10やWindows11)とTitaniumを使うのに問題は発生していない
  • 問題のPCとTitaniumとの組み合わせの場合でも、Windowsをリカバリ状態まで戻すと正常に動作した
  • ネットで検索すると、Bluetoothオーディオ機器に限った話ではなく、オーディオデバイスが見つからなくなるという不具合情報がちらほら散見された

といったことが挙げられます。

これらのことから、どうもWindowsのオーディオデバイスの管理上の問題があり、Windows Updateなどを繰り返すウチに不具合が出るようになった可能性が高いと踏んだわけです。


クドいですが、このような感じでやっていることなので技術的な裏付けがある訳ではありません。レジストリをいじるので、もし同じことをやってWindowsが起動しなくなっても責任は一切持てません。どうしても試したい人は、レジストリのバックアップだけでなく、システムバックアップ&リカバリの手段を用意したうえで、十分に時間があるときに行うようお願いします。

もしも、この方法で直ったという方がいらっしゃいましたら、何らかのコメントを残していただけませんか?「この方法で直った」という情報がある程度集約できたとすると、同様の問題でお困りの方の参考になるかも知れませんので。