[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、IMFMediaEngine,以及媒體基礎的音訊/視訊擷取 所取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
描述
此範例篩選會示範如何實作參考時鐘。 濾波器會使用您的預設麥克風輸入來偵聽音訊激增(例如響鍵、手拍或咳嗽),以此來判斷時脈速率。
用法
建置範例專案,並將篩選 DLL (Metronom.ax) 複製到您的 Windows 系統目錄。 執行Metronom.reg檔案來註冊 DLL。
若要使用篩選:
- 在 GraphEdit 中建置篩選圖形,以轉譯視訊串流。
- 刪除任何轉譯的音訊數據流。
- 將 Metronome 篩選新增至圖形。 它會出現在 DirectShow Filters 類別中。
- 執行圖表。 影片會以正常速度開始播放。
- 拍手或使用節拍器來設定新的速度。
程序設計注意事項
此篩選僅適用於視訊。 音訊轉譯器無法同步處理到完全不同的時鐘速率。
如果您每分鐘拍 92 次 (每 ~652 毫秒一次),視頻會以正常速率播放。 您可以變更Metronom.cpp中常數 BPM 的值,以變更此預設值。
如果您停止擷取一段時間,然後再次開始擷取,您必須以大約相同的速度重新啟動,否則篩選條件會忽略它。 此外,視訊播放速率會受限於CPU速度。 如果您超過限定時間的限制,篩選器將不再響應速率變更。 如果發生這種情況,請停止圖形並重新啟動。
如果您實作自己的時鐘,最重要的規則是參考時鐘不得回溯。 也就是說,它們絕對不能報告小於前一個時間值的時間值。
下載範例
若要下載 DirectShow SDK 範例,請安裝最新版的 Windows SDK。
此範例會安裝在下列路徑下:[SDK Root]\Samples\Multimedia\DirectShow\Filters\Metronome。
相關主題