Bagikan melalui


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
E_POINTER
SessionNotification ADALAH NULL.
E_OUTOFMEMORY
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.

Catatan Pastikan bahwa aplikasi menginisialisasi COM dengan model Multithreaded Apartment (MTA) dengan memanggil 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

Lihat juga

IAudioSessionManager2