Untuk Mengirimkan Sampel Terkompresi dengan Pembaca Asinkron

Pembaca asinkron dapat mengirimkan sampel terkompresi dari aliran dalam file ASF. Aplikasi biasanya mengirimkan sampel terkompresi saat menyalin aliran dari satu file ke file lainnya. Tidak disarankan untuk mengkompresi ulang data yang telah direkonstruksi dari aliran terkompresi, karena data hilang dalam proses pengodean. Media digital yang telah dikompresi lebih dari sekali akan memiliki penurunan kualitas yang nyata.

SDK Format Media Windows tidak menyediakan metode apa pun untuk mendekode data setelah diekstrak dari file ASF. Jika Anda menerima sampel terkompresi dan nantinya ingin mendekompresinya, Anda harus menyediakan kode Anda sendiri untuk melakukannya. Salah satu cara untuk mengatasi batasan ini adalah dengan menulis sampel terkompresi ke file ASF baru dan kemudian membacanya kembali ke dalam sampel normal yang tidak dikompresi.

Untuk menerima sampel terkompresi dengan pembaca asinkron, lakukan langkah-langkah berikut.

  1. Terapkan panggilan balik IWMReaderCallbackAdvanced::OnStreamSample . Panggilan balik ini pada dasarnya identik dalam fungsi dengan IWMReaderCallback::OnSample kecuali bahwa ia memberikan sampel berdasarkan nomor aliran dan sampel masih dikompresi.
  2. Sebelum memulai pemutaran, dapatkan penunjuk ke antarmuka IWMReaderAdvanced objek pembaca dengan memanggil IWMReader::QueryInterface.
  3. Konfigurasikan pembaca untuk mengirimkan sampel terkompresi untuk aliran yang diinginkan dengan memanggil IWMReaderAdvanced::SetReceiveStreamSamples.
  4. Ulangi langkah 3 untuk setiap aliran yang diinginkan pengiriman sampel terkompresi.

Catatan

Aliran gambar tidak valid untuk pengiriman aliran terkompresi. Jika Anda menyalin aliran gambar dari satu file ke file lain, aliran tersebut tidak akan berfungsi di file baru. Untuk menyalin aliran gambar dari file ke file, ambil sampel aliran gambar berdasarkan nomor output dan sertakan dalam file baru seolah-olah menyertakan aliran gambar baru.

 

Antarmuka IWMReaderCallbackAdvanced

Membaca File dengan Pembaca Asinkron