Untuk Menerapkan Panggilan Balik OnSample

[Fitur yang terkait dengan halaman ini, Windows Media Format 11 SDK, adalah fitur warisan. Ini telah digantikan oleh Pembaca Sumber dan Penulis Sink. Pembaca Sumber dan Penulis Sink telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Pembaca Sumber dan Penulis Sink alih-alih Windows Media Format 11 SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Pembaca asinkron mengirimkan sampel ke aplikasi pengontrol dalam urutan waktu presentasi dengan melakukan panggilan ke metode panggilan balik IWMReaderCallback::OnSample . Saat Anda membuat aplikasi menggunakan pembaca asinkron, Anda harus mengimplementasikan OnSample untuk menangani sampel yang tidak dikompresi. Biasanya, fungsi atau metode yang dibuat untuk merender konten akan dipanggil dari dalam OnSample.

Implementasi umum panggilan balik OnSample mencakup langkah-langkah berikut.

  1. Ambil lokasi dan ukuran buffer yang berisi sampel dengan memanggil INSSBuffer::GetBufferAndLength pada buffer yang diteruskan sebagai pSample.
  2. Cabangkan logika Anda tergantung pada nomor output. Nomor output diteruskan ke OnSample sebagai dwOutputNumber.
  3. Sertakan logika penyajian untuk setiap nomor output yang ingin Anda dukung. Jika Anda merender sampel dari beberapa output, Anda mungkin perlu menyinkronkan penyajian Anda.

Aplikasi yang memberikan sampel terkompresi dari file ASF perlu mengimplementasikan metode panggilan balik IWMReaderCallbackAdvanced::OnStreamSample . Fungsi OnStreamSample hampir identik dengan OnSample, kecuali bahwa fungsi tersebut menerima sampel terkompresi berdasarkan nomor aliran alih-alih sampel yang tidak dikompresi berdasarkan nomor output.

Antarmuka IWMReaderCallback

Antarmuka IWMReaderCallbackAdvanced

Membaca File dengan Pembaca Asinkron

Menggunakan Metode Panggilan Balik