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