Bagikan melalui


Menetapkan Format Output

[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 penggunaan kode baru menggunakan Pembaca Sumber dan Sink Writer 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.]

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. Di mana 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 Untuk 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 Angka 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 antarmukaIWMOutputMediaPropsuntuk 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 salurkan pointer ke memori yang telah dialokasikan pada panggilan kedua.

    • Temukan subjenis media dari format output dalam WM_MEDIA_TYPE.subjenis.

    • Untuk video, jika subjenis saat ini adalah format yang ingin Anda gunakan untuk output, hentikan proses 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 pointer ke antarmuka IWMOutputMediaProps yang diperoleh pada langkah pertama perulangan.

Antarmuka IWMMediaProps

Antarmuka IWMOutputMediaProps

Antarmuka IWMReader

Antarmuka IWMSyncReader

Bekerja dengan Keluaran