Mode Berjendela VMR (Kompatibilitas)
[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan 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 Audio/Video Capture 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.]
VMR dirancang agar kompatibel dengan semua aplikasi DirectShow yang ada. Ketika digunakan dengan aplikasi yang ada, VMR beroperasi dalam mode berjendela dengan aliran video tunggal, juga disebut mode kompatibilitas. Mode ini disediakan karena VMR-7 adalah perender default pada Windows XP, dan karenanya secara otomatis digunakan dalam panggilan ke metode Intelligent Connect seperti IGraphBuilder::RenderFile. Jika aplikasi Anda menggunakan Intelligent Connect dan hanya memerlukan kemampuan penyajian dasar, Anda tidak memerlukan kode khusus untuk dirender dengan benar dengan VMR-7 pada Windows XP.
VMR-9 juga berjalan dalam mode berjendela/kompatibilitas secara default. Namun, VMR-9 tidak pernah menjadi perender video default. Untuk menggunakan VMR-9 dalam aplikasi, Anda harus secara eksplisit menambahkannya ke grafik filter. Untuk alasan itu, dan karena mode tanpa jendela memberikan fungsionalitas yang lebih baik daripada mode berjendela, tidak ada keuntungan khusus untuk menggunakan VMR-9 dalam mode berjendela/kompatibilitas.
Menggunakan VMR-7 dalam Mode Berjendela/Kompatibilitas
Tidak diperlukan pemrograman khusus untuk mengatur atau mengontrol VMR-7 dalam mode berjendela/kompatibilitas. Cukup buat grafik filter menggunakan panggilan pembuatan grafik standar, dan VMR-7 akan default ke mode ini.
Dalam mode windowed/compatibility, VMR-7 membuat jendelanya sendiri untuk menampilkan video. Untuk melakukannya, ia memuat komponen Window Manager, yang mengekspos antarmuka IVideoWindow dan IBasicVideo . Aplikasi Anda dapat mengkueri Filter Graph Manager untuk antarmuka ini, persis seperti yang Anda lakukan dengan filter Video Renderer lama. Untuk informasi selengkapnya, lihat Menggunakan Mode Berjendela.
Ilustrasi berikut menunjukkan VMR-7 dalam mode berjendela/kompatibilitas.
Untuk menjamin tingkat kompatibilitas maksimum, jendela video memiliki nama kelas yang sama dengan yang dibuat oleh filter Video Renderer lama, dan sebagian besar kode Window Manager dari Video Renderer lama masih digunakan oleh VMR. Dalam mode berjendela/kompatibilitas, VMR tidak menggunakan lebih banyak sumber daya sistem daripada Video Renderer lama. Karena VMR-7 hanya memiliki satu aliran input dalam mode berjendela/kompatibilitas, VMR-7 tidak memuat komponen mixer atau kompositnya.
Secara default, VMR meregangkan gambar untuk mengisi jendela video. Untuk mempertahankan rasio aspek sumber, panggil metode IVMRAspectRatioControl::SetAspectRatioMode dengan bendera VMR_ARMODE_LETTER_BOX.
Catatan
Aplikasi MFC yang menempatkan jendela video di jendela anak harus menentukan penangan pesan WM_ERASEBKGND kosong, atau area tampilan video tidak akan dicat ulang dengan benar.
Menggunakan VMR-7 dalam Mode Berjendela/Kompatibilitas dengan Beberapa Aliran
Dalam mode berjendela/kompatibilitas, VMR-7 membuat pin input tunggal secara default, dan menonaktifkan mode pencampuran. Untuk mengaktifkan mode pencampuran, Anda harus mengonfigurasi VMR sebelum menyambungkannya. Untuk informasi selengkapnya, lihat VMR dengan Beberapa Aliran (Mode Pencampuran). Dalam mode pencampuran, VMR memuat komponen pencampuran dan komposit, yang membutuhkan lebih banyak sumber daya sistem.
Menggunakan VMR-9 dalam Mode Berjendela
Karena VMR-9 bukan perender default, VMR-9 tidak memiliki mode kompatibilitas seperti itu. Sebaliknya, VMR-9 default ke mode berjendela dengan empat pin input. Anda dapat menggunakan mode ini untuk mencampur hingga empat aliran video. Jika Anda perlu mencampur sejumlah besar aliran, Anda harus mengonfigurasinya seperti yang dijelaskan di VMR dengan Beberapa Aliran (Mode Pencampuran). Jika tidak, VMR-9 dalam mode berjendela berprilaku persis seperti VMR-7 dalam mode berjendela/kompatibilitas.