Windows オーディオ アーキテクチャ
このトピックでは、Windows 10/11 オーディオ アーキテクチャの概要について説明しました。
Windows 10/11 オーディオ スタック図
この図は、Windows 10/11 オーディオ スタックの主要な要素の概要を示しています。
API
トップレベルAPI
トップレベルの API はアプリケーション開発に使用されます。 これらの API は現在使用されており、サポートされています。
- XAML MediaElement クラス(C#, VB, C++)
- HTML オーディオ オブジェクトおよびビデオ オブジェクト<タグ> (Web サイトおよび Windows Web Apps で使用)
- Windows.Media.Capture 名前空間 (C#、VB、C++)
- Microsoft メディア ファンデーション (C++)
これらの古い API は廃止されました。
低レベル API
これらの下位レベルの API は、オーディオ ストリーミングに推奨されます。
この低レベルの API は、列挙に推奨されます。
これらの API は、Windows アプリケーションには推奨されません。
- MMDevice API について (Windows.Devices.Enumeration に置き換えられました)
- DeviceTopology API
- EndpointVolume API
オーディオエンジン
オーディオ エンジンは、オーディオ エンジン (audioeng.dll) を読み込む Audio Device Graph (audiodg.exe) という 2 つの関連コンポーネントで構成されています。
オーディオ エンジン:
- オーディオ ストリームをミキシングして処理します。 オーディオ エンジンがバッファーを使用してオーディオを転送する方法の詳細については、WaveRT ポート ドライバーについてを参照してください。
- オーディオ信号を処理する H/W 固有のプラグインであるオーディオ処理オブジェクト (APO) を読み込みます。 APO の詳細については、Windows オーディオ処理オブジェクトを参照してください。
オーディオ サービス (audiosrv.dll)
音声サービス:
- オーディオ ストリームのセットアップと制御に使用されます。
- バックグラウンドオーディオ再生、ダッキングなどのための Windows ポリシーを実装します。
オーディオ エンドポイント ビルダー (audioendpointbuilder.exe)
オーディオ エンドポイント ビルダー (audioendpointbuilder.exe):
- 新しいオーディオ デバイスを検出し、ソフトウェア オーディオ エンドポイントを作成するために使用されます。 使用されるアルゴリズムの詳細については、オーディオ エンドポイント ビルダー アルゴリズムを参照してください。
オーディオドライバー
オーディオドライバー:
- ポートミニポートモデルに従います。 詳細については、WDM オーディオ用語 およびWaveRT ミニポート ドライバーの開発を参照してください。
- オーディオスタックが、統合されたスピーカーとマイク、ヘッドセット/ヘッドフォン、USBデバイス、Bluetoothデバイス、HDMIなど、複数のオーディオデバイスからオーディオをレンダリングおよびキャプチャできるようにします。
- ポート/ミニポート モデルは、Advanced Linux Sound Architecture ALSA に対応しています
- サンプル ドライバー コードの詳細については、サンプル オーディオ ドライバーを参照してください。
ハードウェア
特定のデバイスに存在するオーディオ ハードウェアはさまざまですが、次のものが含まれます:
- オーディオ コーデック
- DSP (optional)
- 内蔵スピーカー、マイクなど
- 外部デバイス: USBオーディオデバイス、Bluetoothオーディオデバイス、HDMIオーディオなど
- 信号処理は、APO の代わりに、または APO に加えて、H/W (コーデックや DSP など) で実装することもできます。