Metode IAudioClient::GetService (audioclient.h)
Metode GetService mengakses layanan tambahan dari objek klien audio.
Sintaks
HRESULT GetService(
[in] REFIID riid,
[out] void **ppv
);
Parameter
[in] riid
ID antarmuka untuk layanan yang diminta. Klien harus mengatur parameter ini ke salah satu nilai REFIID berikut:
IID_IAudioCaptureClient
IID_IAudioClientDuckingControl
IID_IAudioClock
IID_IAudioRenderClient
IID_IAudioSessionControl
IID_IAudioStreamVolume
IID_IChannelAudioVolume
IID_IMFTrustedOutput
IID_ISimpleAudioVolume
Untuk informasi selengkapnya, lihat Keterangan.
[out] ppv
Pointer ke variabel pointer tempat metode menulis alamat instans antarmuka yang diminta. Melalui metode ini, penelepon mendapatkan referensi yang dihitung ke antarmuka. Pemanggil bertanggung jawab untuk merilis antarmuka, ketika tidak lagi diperlukan, dengan memanggil metode Rilis antarmuka. Jika panggilan GetService gagal, *ppv adalah NULL.
Nilai kembali
Jika metode berhasil, metode akan mengembalikan S_OK. Jika gagal, kemungkinan kode pengembalian menyertakan, tetapi tidak terbatas pada, nilai yang diperlihatkan dalam tabel berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Parameter ppv adalah NULL. |
|
Antarmuka yang diminta tidak tersedia. |
|
Aliran audio belum diinisialisasi. |
|
Pemanggil mencoba mengakses antarmuka IAudioCaptureClient pada titik akhir penyajian, atau antarmuka IAudioRenderClient pada titik akhir pengambilan. |
|
Perangkat titik akhir audio telah dicabut, atau perangkat keras audio atau sumber daya perangkat keras terkait telah dikonfigurasi ulang, dinonaktifkan, dihapus, atau dibuat tidak tersedia untuk digunakan. |
|
Layanan audio Windows tidak berjalan. |
Keterangan
Metode ini memerlukan inisialisasi sebelumnya dari antarmuka IAudioClient . Semua panggilan ke metode ini akan gagal dengan kesalahan AUDCLNT_E_NOT_INITIALIZED sampai klien menginisialisasi aliran audio dengan berhasil memanggil metode IAudioClient::Initialize .
Metode GetService mendukung antarmuka layanan berikut:
- IAudioCaptureClient
- IAudioClock
- IAudioRenderClient
- IAudioSessionControl
- IAudioStreamVolume
- IChannelAudioVolume
- IMFTrustedOutput
- ISimpleAudioVolume
Untuk informasi tentang menggunakan driver audio tepercaya dalam OTAs, lihat Audio Mode Pengguna Terlindungi (PUMA).
Perhatikan bahwa mengaktifkan IMFTrustedOutput melalui mekanisme ini berfungsi terlepas dari apakah pemanggil berjalan di PMP. Namun, jika penelepon tidak berjalan dalam proses yang dilindungi (artinya, pemanggil tidak berada dalam PMP Media Foundation) maka OTA audio mungkin tidak beroperasi di PMP dan pengaturan perlindungan kurang kuat.
Untuk mendapatkan ID antarmuka untuk antarmuka layanan, gunakan operator __uuidof . Misalnya, ID antarmuka IAudioCaptureClient didefinisikan sebagai berikut:
const IID IID_IAudioCaptureClient __uuidof(IAudioCaptureClient)
Untuk informasi tentang operator __uuidof , lihat dokumentasi Windows SDK.
Untuk merilis objek IAudioClient dan membebaskan semua sumber daya terkait, klien harus merilis semua referensi ke objek layanan apa pun yang dibuat dengan memanggil GetService, selain memanggil Rilis pada antarmuka IAudioClient itu sendiri. Klien harus merilis layanan dari utas yang sama yang merilis objek IAudioClient .
Antarmuka IAudioSessionControl, IAudioStreamVolume, IChannelAudioVolume, dan ISimpleAudioVolume mengontrol dan memantau aspek sesi audio dan aliran mode bersama. Antarmuka ini tidak berfungsi dengan aliran mode eksklusif.
Untuk contoh kode yang memanggil metode GetService , lihat topik berikut:
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | audioclient.h |