CaptureSharedTimerDriven
このサンプル アプリケーションでは、コア オーディオ API を使用して、ユーザーによって指定された入力デバイスからオーディオ データをキャプチャし、現在のディレクトリ内で一意の名前を付けた .wav ファイルに書き込みます。 このサンプルでは、タイマー駆動型のバッファリングを示します。
このトピックは、次のセクションで構成されています。
説明
このサンプルでは、次の機能について説明します。
- マルチメディア デバイスの列挙と選択のための MMDevice API 。
- ストリームの管理操作用の WASAPI。
要件
Product | バージョン |
---|---|
Windows SDK | Windows 7 |
Visual Studio | 2008 |
サンプルのダウンロード
このサンプルは、次の場所にあります。
場所 | パス/URL |
---|---|
Windows SDK | \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedTimerDriven\... |
サンプルのビルド
CaptureSharedTimerDriven サンプルをビルドするには、次の手順を使用します。
- Windows SDK の CMD シェルを開き、CaptureSharedTimerDriven サンプル ディレクトリに変更します。
- CaptureSharedTimerDriven ディレクトリでコマンド
start WASAPICaptureSharedTimerDriven.sln
を実行して、Visual Studio ウィンドウで WASAPICaptureSharedTimerDriven プロジェクトを開きます。 - ウィンドウ内から、[デバッグ] または [リリース] ソリューションの構成を選択し、メニュー バーから [ビルド] メニューを選択して、[ビルド] オプションを選択します。 SDK の CMD シェルから Visual Studio を開かない場合、Visual Studio は SDK のビルド環境にアクセスできません。 その場合、プロジェクト ファイル WASAPICaptureSharedTimerDriven.vcproj で使用される環境変数 MSSdk を明示的に設定しない限り、サンプルはビルドされません。
サンプルの実行
デモ アプリケーションを正常にビルドすると、実行可能ファイル (WASAPICaptureSharedTimerDriven.exe) が生成されます。 これを実行するには、コマンド ウィンドウに WASAPICaptureSharedTimerDriven
を入力し、その後に必須の引数、または省略可能な引数を入力します。 次の例は、既定のマルチメディア デバイスでキャプチャ持続時間を指定してサンプルを実行する方法を示しています。
WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia
次の表に、引数を示しています。
引数 | 説明 |
---|---|
-? | ヘルプを表示します。 |
-h | ヘルプを表示します。 |
-l | オーディオ キャプチャの待ち時間 (ミリ秒単位)。 |
-d | オーディオ キャプチャの持続時間 (秒単位)。 |
-m | MMCSS の使用を無効にします。 |
-console | 既定のコンソール デバイスを使用します。 |
-communications | 既定の通信デバイスを使用します。 |
-multimedia | 既定のマルチメディア デバイスを使用します。 |
-endpoint | スイッチ値で指定されたエンドポイント識別子を使用します。 |
アプリケーションを引数なしで実行すると、使用可能なデバイスが列挙され、キャプチャ セッション用のデバイスを選択するようにユーザーに求めます。 既定のコンソール、通信、マルチメディア デバイスの後に、デバイスとエンドポイント識別子が一覧表示されます。 持続時間が指定されていない場合、指定したデバイスからのオーディオ ストリームが 10 秒間キャプチャされます。 アプリケーションは、キャプチャされたデータを一意の名前の .wav ファイルに書き込みます。
CaptureSharedTimerDriven は、タイマー駆動型のバッファリングをデモンストレーションしています。 このモードでは、クライアントは一定期間 (-d スイッチ値で指定された待機時間の半分 (ミリ秒単位)) 待機する必要があります。 クライアントが起動すると、処理期間の途中で、エンジンから次のサンプル セットがプルされます。 各処理がバッファリング ループに入る前に、クライアントは、データがキャプチャ バッファーをオーバーランしないよう、使用可能なキャプチャ データの量を確認する必要があります。 指定されたデバイスからキャプチャされたオーディオ データは、イベント駆動型のバッファリングを有効にすることで処理できます。 このモードは、CaptureSharedEventDriven サンプルでデモンストレーションされます。
関連トピック