Membaca File dengan Pembaca Asinkron

[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 membaca konten dari file ASF menggunakan beberapa utas dan panggilan asinkron. Fitur yang didukung oleh pembaca asinkron membuatnya sangat cocok untuk aplikasi yang merender konten kepada pengguna akhir.

Fungsionalitas paling mendasar dari objek pembaca dapat dipecah menjadi langkah-langkah berikut. Dalam langkah-langkah ini "aplikasi" mengacu pada program yang Anda tulis menggunakan Windows Media Format SDK.

  1. Aplikasi ini mengimplementasikan antarmuka IWMReaderCallback untuk menangani pesan dari pembaca. Ini termasuk dua metode panggilan balik: OnStatus, yang menerima pesan yang berkaitan dengan status berbagai aspek pembaca dan OnSample, yang menerima sampel yang tidak dikompresi dari pembaca.
  2. Aplikasi meneruskan ke pembaca nama file yang akan dibaca. Saat pembaca membuka file, pembaca menetapkan nomor output untuk setiap aliran. Jika file menggunakan pengecualian timbal balik, pembaca menetapkan satu output untuk semua aliran yang saling eksklusif.
  3. Aplikasi ini mendapatkan informasi tentang konfigurasi berbagai output dari pembaca. Informasi yang dikumpulkan akan memungkinkan aplikasi untuk merender sampel media dengan benar.
  4. Aplikasi menginstruksikan pembaca untuk mulai membaca data dari file. Pembaca mulai mengirimkan sampel yang tidak dikompresi ke panggilan balik OnSample satu per satu dalam buffer yang dibungkus dalam objek buffer. Sampel yang dikirimkan oleh pembaca berada dalam urutan waktu presentasi. Pembaca akan terus mengirimkan sampel sampai dihentikan oleh aplikasi atau sampai akhir file tercapai.
  5. Aplikasi bertanggung jawab untuk merender data setelah dikirimkan oleh pembaca. Windows Media Format SDK tidak menyediakan rutinitas penyajian apa pun. Biasanya, aplikasi akan menggunakan SDK lain untuk merender data, seperti Microsoft DirectX® SDK, atau fungsi multimedia microsoft SDK Platform Windows.
  6. Ketika pembacaan selesai, aplikasi menginstruksikan pembaca untuk menutup file.

Langkah-langkah ini diilustrasikan dalam aplikasi sampel AudioPlayer, antara lain. Untuk informasi selengkapnya, lihat Aplikasi Sampel.

Pembaca juga mendukung fungsionalitas yang lebih canggih. Pembaca memungkinkan Anda melakukan hal berikut:

  • Jeda pemutaran file.
  • Mengambil statistik performa pembaca.
  • Mengontrol pemilihan aliran untuk aliran yang saling eksklusif.
  • Alokasikan buffer secara manual untuk output.
  • Berikan jam Anda sendiri.
  • Ambil status operasi file (buffering, unduh, atau simpan).
  • Buka file menggunakan antarmuka COM standar, IStream.
  • Cari titik tertentu dalam file ASF.
  • Membaca data profil dari header file.

Bagian berikut menjelaskan penggunaan objek pembaca secara rinci.

Membaca File ASF

Objek Pembaca