WinAPI/AudioPlaybackConnection
これはなに
WindowsをA2DPのSink側にできる
接続と再生の管理をするAPIがあるだけで、UIは付属していない
実装例
メモ
\\?\BTHENUM#{UUID}_VID&..._PID&...#{UUID}\SNK みたいなデバイスIDが必要?
AudioPlaybackConnection.GetDeviceSelector() が返すセレクタ文字列をDevicePickerやDeviceWatcherに渡して使う
GetDeviceSelectorが返す文字列は System.Devices.DevObjectType:=8AND System.Devices.InterfaceClassGuid:="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"AND System.DeviceInterface.Bluetooth.ServiceGuid:="{0000110A-0000-1000-8000-00805F9B34FB}"AND System.Devices.InterfaceEnabled:=System.StructuredQueryType.Boolean#True だった
AudioPlaybackConnection を解放すると再生は終了するので、インスタンスを保持しないといけない
ステータス系
スマホで出力先を切り替えてもStateChangedは飛ばない?
仕組み
録音デバイス(ライン)として ... A2DP Sink が追加されている
「このデバイスを聴く」がオンになっている。オフにもできる。
当然「レベル」を下げると再生音量も小さくなる
TODO
接続したままスリープして復旧すると…?