IAudioSessionControl::RegisterAudioSessionNotification method (audiopolicy.h)
Metode RegisterAudioSessionNotification mendaftarkan klien untuk menerima pemberitahuan peristiwa sesi, termasuk perubahan dalam status aliran.
Sintaks
HRESULT RegisterAudioSessionNotification(
[in] IAudioSessionEvents *NewNotifications
);
Parameter
[in] NewNotifications
Arahkan ke antarmuka IAudioSessionEvents yang diimplementasikan klien. Jika metode berhasil, metode ini memanggil metode AddRef pada antarmuka IAudioSessionEvents klien.
Nilai kembali
Jika metode berhasil, metode akan mengembalikan S_OK. Jika gagal, kemungkinan kode pengembalian disertakan, tetapi tidak terbatas pada, nilai yang diperlihatkan dalam tabel berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Parameter NewNotifications adalah NULL. |
|
Perangkat titik akhir audio telah dicabut, atau perangkat keras audio atau sumber daya perangkat keras terkait telah dikonfigurasi ulang, dinonaktifkan, dihapus, atau tidak tersedia untuk digunakan. |
|
Layanan audio Windows tidak berjalan. |
Keterangan
Metode ini meneruskan antarmuka IAudioSessionEvents yang diterapkan klien ke manajer sesi. Mengikuti panggilan yang berhasil ke metode ini, manajer sesi memanggil metode di antarmuka IAudioSessionEvents untuk memberi tahu klien tentang berbagai peristiwa sesi. Melalui metode ini, klien menerima pemberitahuan tentang peristiwa terkait sesi berikut:
- Perubahan nama tampilan
- Perubahan tingkat volume
- Perubahan status sesi (tidak aktif menjadi aktif, atau aktif menjadi tidak aktif)
- Mengelompokkan perubahan parameter
- Pemutusan sambungan klien dari sesi (disebabkan oleh pengguna yang menghapus perangkat titik akhir audio, mematikan manajer sesi, atau mengubah format aliran)
Sebelum klien merilis referensi terakhirnya ke antarmuka IAudioSessionEvents , klien harus memanggil UnregisterAudioSessionNotification untuk membatalkan pendaftaran antarmuka. Jika tidak, aplikasi membocorkan sumber daya yang dipegang oleh objek IAudioSessionEvents dan IAudioSessionControl . Perhatikan bahwa RegisterAudioSessionNotification memanggil metode IAudioSessionEvents::AddRef klien, dan UnregisterAudioSessionNotification memanggil metode IAudioSessionEvents::Release . Jika klien melakukan kesalahan dengan merilis referensinya ke antarmuka IAudioSessionEvents sebelum memanggil UnregisterAudioSessionNotification, manajer sesi tidak pernah merilis referensinya ke antarmuka IAudioSessionEvents . Misalnya, implementasi IAudioSessionEvents yang dirancang dengan buruk mungkin memanggil UnregisterAudioSessionNotification dari destruktor untuk objek IAudioSessionEvents . Dalam hal ini, klien tidak akan memanggil UnregisterAudioSessionNotification sampai manajer sesi merilis referensinya ke antarmuka IAudioSessionEvents , dan manajer sesi tidak akan merilis referensinya ke antarmuka IAudioSessionEvents hingga klien memanggil UnregisterAudioSessionNotification. Untuk informasi selengkapnya tentang metode AddRef dan Rilis , lihat diskusi antarmuka IUnknown dalam dokumentasi Windows SDK.
Selain itu, klien harus memanggil UnregisterAudioSessionNotification sebelum merilis semua referensinya ke objek IAudioSessionControl dan IAudioSessionManager . Kecuali klien mempertahankan referensi ke setidaknya salah satu dari dua objek ini, manajer sesi membocorkan penyimpanan yang dialokasikan untuk menyimpan informasi pendaftaran. Setelah mendaftarkan antarmuka pemberitahuan, klien terus menerima pemberitahuan hanya selama setidaknya satu dari dua objek ini ada.
Untuk contoh kode yang memanggil metode RegisterAudioSessionNotification , lihat Peristiwa Audio untuk Aplikasi Audio Warisan.
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 | audiopolicy.h |
Lihat juga
Antarmuka IAudioSessionControl
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk