Menggunakan Detektor Media

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

[API ini tidak didukung dan dapat diubah atau tidak tersedia di masa mendatang.]

Detektor media adalah objek pembantu yang dapat mengambil informasi tentang file, seperti jumlah aliran, jenisnya, dan durasinya. Ini juga berisi metode untuk mengambil bingkai poster dari aliran video. Ini mengekspos antarmuka IMediaDet .

Detektor media beroperasi dalam salah satu dari dua mode. Saat Anda membuat instans detektor media, instans tersebut tidak dilampirkan ke file sumber tertentu. Dalam mode ini, Anda dapat mengambil informasi aliran dari beberapa file sumber. Namun, setelah Anda menggunakan detektor media untuk mendapatkan bingkai poster, ia beralih ke mode ambil bitmap. Dalam mode ambil bitmap, detektor media dilampirkan ke aliran video tertentu, dan metode informasi streaming tidak lagi berfungsi. Selain itu, tidak ada cara untuk mengalihkan detektor media kembali ke mode mulainya. Oleh karena itu, dapatkan informasi aliran apa pun yang Anda butuhkan sebelum mengambil bingkai poster, atau buat instans baru detektor media untuk setiap aliran.

Untuk mendapatkan informasi streaming, lakukan hal berikut:

  1. Panggil IMediaDet::p ut_Filename dengan nama file sumber.
  2. Panggil IMediaDet::get_OutputStreams untuk mendapatkan jumlah aliran di sumbernya.
  3. Tentukan nomor aliran dengan IMediaDet::p ut_CurrentStream. Kemudian panggil satu atau beberapa metode berikut:

Untuk mendapatkan bingkai poster, tentukan nomor stream, seperti pada langkah sebelumnya. Kemudian panggil IMediaDet::GetBitmapBits, yang menyalin bingkai poster ke dalam buffer, atau IMediaDet::WriteBitmapBits, yang menyimpan bingkai poster ke file.

Bekerja dengan Sumber