Tentang WASAPI

WINDOWS Audio Session API (WASAPI) memungkinkan aplikasi klien mengelola aliran data audio antara aplikasi dan perangkat titik akhir audio.

File header Audioclient.h dan Audiopolicy.h menentukan antarmuka WASAPI.

Setiap aliran audio adalah anggota sesi audio. Melalui abstraksi sesi, klien WASAPI dapat mengidentifikasi aliran audio sebagai anggota grup aliran audio terkait. Sistem dapat mengelola semua aliran dalam sesi sebagai satu unit.

Mesin audio adalah komponen audio mode pengguna tempat aplikasi berbagi akses ke perangkat titik akhir audio. Mesin audio mengangkut data audio antara buffer titik akhir dan perangkat titik akhir. Untuk memutar aliran audio melalui perangkat titik akhir penyajian, aplikasi secara berkala menulis data audio ke buffer titik akhir penyajian. Mesin audio mencampur aliran dari berbagai aplikasi. Untuk merekam aliran audio dari perangkat titik akhir pengambilan, aplikasi secara berkala membaca data audio dari buffer titik akhir pengambilan.

WASAPI terdiri dari beberapa antarmuka. Yang pertama adalah antarmuka IAudioClient. Untuk mengakses antarmuka WASAPI, klien terlebih dahulu mendapatkan referensi ke antarmuka IAudioClient dari perangkat titik akhir audio dengan memanggil metode IMMDevice::Activate dengan parameter iid diatur ke REFIID IID_IAudioClient. Klien memanggil metode IAudioClient::Initialize untuk menginisialisasi aliran pada perangkat titik akhir. Setelah menginisialisasi aliran, klien dapat memperoleh referensi ke antarmuka WASAPI lainnya dengan memanggil metode IAudioClient::GetService.

Banyak metode dalam WASAPI mengembalikan kode kesalahan AUDCLNT_E_DEVICE_INVALIDATED jika perangkat titik akhir audio yang digunakan aplikasi klien menjadi tidak valid. Sering kali, aplikasi dapat pulih dari kesalahan ini. Untuk informasi selengkapnya, lihat Memulihkan dari Kesalahan Perangkat Tidak Valid.

WASAPI mengimplementasikan antarmuka berikut.

Antarmuka Deskripsi
IAudioCaptureClient Memungkinkan klien membaca data input dari buffer titik akhir pengambilan.
IAudioClient Memungkinkan klien membuat dan menginisialisasi aliran audio antara aplikasi audio dan mesin audio atau buffer perangkat keras perangkat titik akhir audio.
IAudioClock Memungkinkan klien untuk memantau laju data aliran dan posisi saat ini di aliran.
IAudioRenderClient Memungkinkan klien menulis data output ke buffer titik akhir penyajian.
IAudioSessionControl Memungkinkan klien mengonfigurasi parameter kontrol untuk sesi audio dan memantau peristiwa dalam sesi.
IAudioSessionManager Memungkinkan klien mengakses kontrol sesi dan kontrol volume untuk sesi audio lintas proses dan khusus proses.
IAudioStreamVolume Memungkinkan klien mengontrol dan memantau tingkat volume untuk semua saluran dalam aliran audio.
IChannelAudioVolume Memungkinkan klien mengontrol tingkat volume untuk semua saluran dalam sesi audio tempat aliran berada.
ISimpleAudioVolume Memungkinkan klien mengontrol tingkat volume master sesi audio.

 

Klien WASAPI yang memerlukan pemberitahuan peristiwa terkait sesi harus menerapkan antarmuka berikut.

Antarmuka Deskripsi
IAudioSessionEvents Menyediakan pemberitahuan peristiwa terkait sesi seperti perubahan tingkat volume, nama tampilan, dan status sesi.

 

Manajemen Aliran

Referensi Pemrograman