Bagikan melalui


IAudioSessionEvents::OnSessionDisconnected method (audiopolicy.h)

Metode OnSessionDisconnected memberi tahu klien bahwa sesi audio telah terputus.

Sintaks

HRESULT OnSessionDisconnected(
  [in] AudioSessionDisconnectReason DisconnectReason
);

Parameter

[in] DisconnectReason

Alasan bahwa sesi audio terputus. Pemanggil mengatur parameter ini ke salah satu nilai enumerasi AudioSessionDisconnectReason yang diperlihatkan dalam tabel berikut.

Nilai Deskripsi
DisconnectReasonDeviceRemoval Pengguna menghapus perangkat titik akhir audio.
Putuskan SambunganReasonServerShutdown Layanan audio Windows telah berhenti.
DisconnectReasonFormatChanged Format aliran berubah untuk perangkat tempat sesi audio tersambung.
DisconnectReasonSessionLogoff Pengguna keluar dari sesi Terminal Windows Services (WTS) tempat sesi audio berjalan.
DisconnectReasonSessionDisconnected Sesi WTS tempat sesi audio berjalan terputus.
Putuskan SambunganReasonExclusiveModeOverride Sesi audio (mode bersama) terputus untuk membuat perangkat titik akhir audio tersedia untuk koneksi mode eksklusif.
 

Untuk informasi selengkapnya tentang sesi WTS, lihat dokumentasi Windows SDK.

Nilai kembali

Jika metode berhasil, metode akan mengembalikan S_OK. Jika gagal, kode kesalahan akan dikembalikan.

Keterangan

Saat memutuskan sesi, manajer sesi menutup aliran yang termasuk dalam sesi tersebut dan membatalkan semua permintaan layanan yang luar biasa pada aliran tersebut. Klien harus menanggapi pemutusan sambungan dengan melepaskan semua referensinya ke antarmuka IAudioClient untuk aliran tertutup dan merilis semua referensi ke antarmuka layanan yang diperoleh sebelumnya melalui panggilan ke metode IAudioClient::GetService .

Setelah pemutusan, banyak metode di antarmuka WASAPI yang terkait dengan aliran tertutup dalam kode kesalahan pengembalian sesi yang terputus AUDCLNT_E_DEVICE_INVALIDATED (misalnya, lihat IAudioClient::GetCurrentPadding). Untuk informasi tentang pemulihan dari kesalahan ini, lihat Memulihkan dari Kesalahan Invalid-Device.

Jika layanan audio Windows berakhir secara tak terduga, layanan audio Windows tidak memiliki kesempatan untuk memberi tahu klien bahwa layanan tersebut dimatikan. Dalam hal ini, klien mengetahui bahwa layanan telah berhenti ketika mereka memanggil metode seperti IAudioClient::GetCurrentPadding yang menemukan bahwa layanan tidak lagi berjalan dan gagal dengan kode kesalahan AUDCLNT_E_SERVICE_NOT_RUNNING.

Klien tidak dapat menghasilkan peristiwa yang terputus dari sesi. Sistem selalu menjadi sumber dari jenis peristiwa ini. Dengan demikian, tidak seperti beberapa metode IAudioSessionEvents lainnya, metode ini tidak memiliki parameter konteks.

Untuk contoh kode yang mengimplementasikan metode di antarmuka IAudioSessionEvents , lihat Peristiwa Sesi Audio.

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 IAudioClient

IAudioClient::GetService

Antarmuka IAudioSessionEvents