IAudioSessionManager2::RegisterSessionNotification method (audiopolicy.h)
Metode RegisterSessionNotification mendaftarkan aplikasi untuk menerima pemberitahuan saat sesi dibuat.
Sintaks
HRESULT RegisterSessionNotification(
IAudioSessionNotification *SessionNotification
);
Parameter
SessionNotification
Penunjuk ke implementasi aplikasi dari antarmuka IAudioSessionNotification . Jika panggilan metode berhasil, metode ini memanggil metode AddRef pada antarmuka IAudioSessionNotification aplikasi.
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.
Mengembalikan nilai | Deskripsi |
---|---|
|
SessionNotification ADALAH NULL. |
|
Objek internal tidak dapat dibuat karena memori tidak mencukup. |
Keterangan
Aplikasi dapat mendaftar untuk menerima pemberitahuan saat sesi dibuat, melalui metode antarmuka IAudioSessionNotification . Aplikasi ini mengimplementasikan antarmuka IAudioSessionNotification . Metode yang ditentukan dalam antarmuka ini menerima panggilan balik dari sistem saat sesi dibuat. Misalnya kode yang menunjukkan cara mengimplementasikan antarmuka ini, lihat
Antarmuka IAudioSessionNotification.
Untuk mulai menerima pemberitahuan, aplikasi memanggil metode IAudioSessionManager2::RegisterSessionNotification untuk mendaftarkan antarmuka IAudioSessionNotification-nya . Ketika aplikasi tidak lagi memerlukan pemberitahuan, aplikasi memanggil metode IAudioSessionManager2::UnregisterSessionNotification untuk menghapus pendaftaran.
Penting
Anda harus memanggil IAudioSessionEnumerator::GetCount untuk mulai menerima pemberitahuan. API enumerasi sesi membuang pemberitahuan sesi baru hingga aplikasi pertama kali mengambil daftar sesi yang ada. Hal ini untuk mencegah kondisi balapan yang dapat terjadi ketika pemberitahuan sesi tiba saat aplikasi menggunakan API sesi dimulai. Memanggil GetCount memicu API enumerasi untuk mulai mengirim pemberitahuan sesi.
CoInitializeEx(NULL, COINIT_MULTITHREADED)
dalam utas non-UI. Jika MTA tidak diinisialisasi, aplikasi tidak menerima pemberitahuan sesi dari manajer sesi.
Utas yang menjalankan antarmuka pengguna aplikasi harus diinisialisasi model utas apartemen.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | audiopolicy.h |