共用方式為


Metronome 篩選範例

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngine,以及媒體基礎的音訊/視訊擷取 所取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

描述

此範例篩選會示範如何實作參考時鐘。 濾波器會使用您的預設麥克風輸入來偵聽音訊激增(例如響鍵、手拍或咳嗽),以此來判斷時脈速率。

用法

建置範例專案,並將篩選 DLL (Metronom.ax) 複製到您的 Windows 系統目錄。 執行Metronom.reg檔案來註冊 DLL。

若要使用篩選:

  1. 在 GraphEdit 中建置篩選圖形,以轉譯視訊串流。
  2. 刪除任何轉譯的音訊數據流。
  3. 將 Metronome 篩選新增至圖形。 它會出現在 DirectShow Filters 類別中。
  4. 執行圖表。 影片會以正常速度開始播放。
  5. 拍手或使用節拍器來設定新的速度。

程序設計注意事項

此篩選僅適用於視訊。 音訊轉譯器無法同步處理到完全不同的時鐘速率。

如果您每分鐘拍 92 次 (每 ~652 毫秒一次),視頻會以正常速率播放。 您可以變更Metronom.cpp中常數 BPM 的值,以變更此預設值。

如果您停止擷取一段時間,然後再次開始擷取,您必須以大約相同的速度重新啟動,否則篩選條件會忽略它。 此外,視訊播放速率會受限於CPU速度。 如果您超過限定時間的限制,篩選器將不再響應速率變更。 如果發生這種情況,請停止圖形並重新啟動。

如果您實作自己的時鐘,最重要的規則是參考時鐘不得回溯。 也就是說,它們絕對不能報告小於前一個時間值的時間值。

下載範例

若要下載 DirectShow SDK 範例,請安裝最新版的 Windows SDK

此範例會安裝在下列路徑下:[SDK Root]\Samples\Multimedia\DirectShow\Filters\Metronome。

CBaseReferenceClock 類別

DirectShow 範例