Menetapkan Format Output

Beberapa codec dapat mendekompresi data media digital ke dalam beberapa format yang tidak dikompresi. Anda dapat menemukan semua format yang didukung untuk output tertentu menggunakan pembaca asinkron atau pembaca sinkron.

Untuk memeriksa semua format yang tersedia untuk output, lakukan langkah-langkah berikut. Prosedur ini identik untuk pembaca asinkron dan pembaca sinkron. Jika nama antarmuka bervariasi, metode pembaca sinkron tercantum dalam tanda kurung setelah metode pembaca asinkron.

  1. Buat objek pembaca dan muat file untuk dibaca. Untuk informasi selengkapnya, lihat Membuat Pembaca dan Membuka File (atau Untuk Membuat Pembaca Sinkron dan Membuka File).

  2. Tentukan output yang ingin Anda temukan formatnya yang tersedia. Jika Anda belum mengetahui output mana yang ingin Anda gunakan, Anda dapat mengidentifikasi output dalam file menggunakan prosedur di Untuk Mengidentifikasi Nomor Output.

  3. Ambil jumlah total format yang tersedia untuk output yang diinginkan dengan memanggil IWMReader::GetOutputFormatCount (atau IWMSyncReader::GetOutputFormatCount).

  4. Ulangi format yang tersedia satu per satu, lakukan langkah-langkah berikut untuk masing-masing:

    • Ambil antarmuka IWMOutputMediaProps untuk format output saat ini dengan memanggil IWMReader::GetOutputFormat (atau IWMSyncReader::GetOutputFormat).

    • Ambil struktur WM_MEDIA_TYPE untuk format output dengan melakukan dua panggilan ke IWMMediaProps::GetMediaType. Lakukan panggilan pertama untuk mendapatkan ukuran struktur, lalu alokasikan memori untuk itu dan teruskan penunjuk ke memori yang dialokasikan pada panggilan kedua.

    • Temukan subjenis media dari format output di WM_MEDIA_TYPE.subtype.

    • Untuk video, jika subjenis saat ini adalah format yang ingin Anda gunakan untuk output, keluar dari perulangan. Jika tidak, lanjutkan ke iterasi berikutnya.

      Untuk audio, Anda harus memeriksa nilai dalam struktur WAVEFORMATEX terhadap kebutuhan Anda. WM_MEDIA_TYPE.pbFormat menunjuk ke struktur WAVEFORMATEX untuk output audio.

  5. Ketika Anda telah menemukan output yang diinginkan, atur untuk digunakan dengan pembaca dengan memanggil IWMReader::SetOutputProps (atau IWMSyncReader::SetOutputProps). Anda harus meneruskan penunjuk ke antarmuka IWMOutputMediaProps yang diperoleh pada langkah pertama perulangan.

Antarmuka IWMMediaProps

Antarmuka IWMOutputMediaProps

Antarmuka IWMReader

Antarmuka IWMSyncReader

Bekerja dengan Output