WASAPI
Windows Audio Session API、
概要
オーディオを
WASAPIは
動作 モード
排他 モード(exclusive)
OS
共有 モード
利用
WASAPIはWin32 APIすなわちOSにAudioclient.h
とAudiopolicy.h
で
WASAPIの
- クライアント
初期 化 -IAudioClient::Initialize
- サービス(read/write/etc)の
選択 -IAudioClient::GetService
- ストリームの
開始 -IAudioClient::Start
オーディオI/Oの
- read
待 ち/write済 みバッファ長 確認 -IAudioClient::GetCurrentPadding
[4][5] - パケットバッファ
取得 /ロック -IAudioCaptureClient::GetBuffer
/IAudioRenderClient::GetBuffer
- read/write -
取得 したアドレスへのread/write 解放 /送出 -IAudioCaptureClient::ReleaseBuffer
/IAudioRenderClient::ReleaseBuffer
このように、WASAPIはクライアントとエンドポイントバッファ
対応 ソフトウェア
DTMソフトウェア
波形 編集 ソフトウェア
メディアプレーヤー
- Media Player Classic
- foobar2000 (バージョン1.6から
共有 モードでの出力 が既定 。バージョン1.6.7からコンポーネントを必要 とせず単体 での排他 モードでの出力 に対応 [6]) - Music Center for PC
- x-アプリ
- AIMP
- KbMedia Player
- PowerDVD(PowerDVD 14シリーズ
以降 より対 応 ) - MusicBee
- XMPlay(WASAPI output plugin の
追加 が必要 )
歴史
Core Audio APIの
脚注
- ^ "The Windows Audio Session API (WASAPI) enables client applications to manage the flow of audio data between the application and an audio endpoint device." Windows Developer. About WASAPI.
- ^ "To play an audio stream through a rendering endpoint device, an application periodically writes audio data to a rendering endpoint buffer. The audio engine mixes the streams from the various applications." Windows Developer. About WASAPI.
- ^ "Header files Audioclient.h and Audiopolicy.h define the WASAPI interfaces." About WASAPI. Windows App Development.
- ^ "the client can call the IAudioClient::GetCurrentPadding method to get the total amount of captured data that is available in the buffer." Capturing a Stream. Windows App Development.
- ^ "For a rendering buffer, the padding value that is reported by the IAudioClient::GetCurrentPadding method represents the amount of rendering data that is queued up to play in the buffer." Rendering a Stream. Windows App Development.
- ^ “foobar2000: Change Log”. 2022
年 7月 15日 閲覧 。