Metronome フィルターのサンプル

説明

このサンプル フィルターは、参照クロックを実装する方法を示しています。 フィルターは、既定のマイク入力を使用して、クロック レートを決定するために使用するオーディオスパイク (クリック、手のクラップ、せきなど) をリッスンします。

使用

サンプル プロジェクトをビルドし、フィルター DLL (Metronom.ax) をシステム ディレクトリWindowsコピーします。 Metronom.reg ファイルを実行して DLL を登録します。

フィルターを使用するには:

  1. GraphEdit でビデオ ストリームをレンダリングするフィルター グラフを作成します。
  2. レンダリングされたオーディオ ストリームを削除します。
  3. グラフに Metronome フィルターを追加します。 [フィルター] カテゴリDirectShow表示されます。
  4. グラフを実行します。 ビデオは通常の速度で再生を開始します。
  5. 手をたたく、または都市を使用して新しい速度を設定します。

プログラミングに関する注意事項

このフィルターはビデオに対してのみ機能します。 オーディオ レンダラーは、根本的に異なるクロック レートに同期できない。

1 分あたり 92 回 (約 652 ミリ秒に 1 回) クラップすると、ビデオは通常のレートで再生されます。 この既定値は BPM 、Metronom.cpp の定数の値を変更することで変更できます。

一期間のアプリの適用を停止してから、もう一度アプリの適用を開始する場合は、ほぼ同じ速度でもう一度開始する必要があります。そうすると、フィルターによって無視されます。 また、ビデオ再生速度は CPU 速度によって制限されます。 制限を超えて時間が長い場合、フィルターはレートの変更への応答を停止します。 このような場合は、グラフを停止して再起動します。

独自のクロックを実装する場合、最も重要なルールは、参照クロックを前に戻さなければならないという点です。 つまり、前の時刻値より小さい時間値を報告する必要があります。

サンプルのダウンロード

DirectShow SDK サンプルをダウンロードするには、最新バージョンの Windows SDK をインストールします

このサンプルは、次のパスの下にインストールされます: [ SDK ルート ] サンプル マルチメディア DirectShow \ \ \ \ \ Metronome。

CBaseReferenceClock クラス

DirectShowサンプル