Expand description
flexaudio-os-windows — Windows バックエンド: WASAPI ループバック / プロセス ループバック(windows-rs 0.54, Win11+)。
2 つの CaptureBackend を提供する:
- [
WasapiSystemBackend] — render endpoint の古典 loopback (AUDCLNT_STREAMFLAGS_LOOPBACK)でシステム音声出力(そのエンドポイントへ流れている ミックス)を録る。device_idで出力エンドポイントを選べる(Noneで既定)。Linux のPwSystemBackend相当。出力エンドポイントの一覧は [list_output_devices] で取れる。 - [
WasapiProcessBackend] —ActivateAudioInterfaceAsync+ プロセスループバック (AUDIOCLIENT_ACTIVATION_PARAMS)で特定 PID(そのプロセスツリー)の音声を録る。exclude_selfで「対象ツリーを除く全システム音」へ反転する。
§!Send 回避
WASAPI の IAudioClient 等の COM インターフェイスは !Send だが、コア契約
[CaptureBackend] は Send を要求する。COM の初期化からキャプチャ、破棄までを専用
スレッド 1 本の上で完結させ、バックエンド構造体が持つのは Send なものだけ(停止フラグ
[AtomicBool] / [JoinHandle] / キャッシュ済みフォーマット)にする。COM インター
フェイスはスレッド境界を跨がない。cpal / PipeWire backend と同じ作り。
§非 Windows
#![cfg(target_os = "windows")] で非 Windows では空コンパイルになり、windows
依存も Cargo.toml の target.'cfg(...windows)' セクションでしか引かれない。