Sampel Filter Metronom

[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.]

Deskripsi

Filter sampel ini menunjukkan cara mengimplementasikan jam referensi. Filter menggunakan input mikrofon default Anda untuk mendengarkan lonjakan audio (seperti klik, tepuk tangan, atau batuk), yang digunakannya untuk menentukan laju jam.

Penggunaan

Buat proyek sampel dan salin DLL filter (Metronom.ax) ke direktori sistem Windows Anda. Jalankan file Metronom.reg untuk mendaftarkan DLL.

Untuk menggunakan filter:

  1. Buat grafik filter di GraphEdit yang merender aliran video.
  2. Hapus aliran audio yang dirender.
  3. Tambahkan filter Metronome ke grafik. Ini muncul di kategori Filter DirectShow.
  4. Jalankan grafik. Video akan mulai diputar dengan kecepatan normal.
  5. Tepuk tangan Anda atau gunakan metronom untuk mengatur kecepatan baru.

Catatan Pemrograman

Filter ini hanya berfungsi untuk video. Perender audio tidak mampu menyinkronkan ke laju jam yang berbeda secara radikal.

Jika Anda bertepuk tangan 92 kali per menit (sekali setiap ~652 md), video akan diputar pada tingkat normal. Anda dapat mengubah default ini dengan mengubah nilai konstanta BPM di Metronom.cpp.

Jika Anda berhenti bertepuk tangan untuk jangka waktu tertentu dan kemudian mulai bertepuk tangan lagi, Anda harus mulai lagi dengan kecepatan yang kira-kira sama, atau filter akan mengabaikannya. Selain itu, laju pemutaran video dibatasi oleh kecepatan CPU. Jika Anda melebihi batas untuk durasi waktu apa pun, filter akan berhenti merespons perubahan tarif. Jika ini terjadi, hentikan grafik dan mulai ulang.

Jika Anda menerapkan jam Anda sendiri, aturan yang paling penting adalah bahwa jam referensi tidak boleh mundur. Artinya, mereka tidak boleh melaporkan nilai waktu yang kurang dari nilai waktu sebelumnya.

Mengunduh Sampel

Untuk mengunduh sampel DirectShow SDK, instal versi terbaru Windows SDK.

Sampel ini diinstal di bawah jalur berikut: [SDK Root]\Samples\Multimedia\DirectShow\Filters\Metronome.

Kelas CBaseReferenceClock

Sampel DirectShow