次の方法で共有


CaptureSharedTimerDriven

このサンプル アプリケーションでは、コア オーディオ API を使用して、ユーザーによって指定された入力デバイスからオーディオ データをキャプチャし、現在のディレクトリ内の一意の名前の.wav ファイルに書き込みます。 このサンプルでは、タイマー駆動のバッファリングを示します。

このトピックには、次のセクションが含まれています。

形容

このサンプルでは、次の機能を示します。

  • マルチメディア デバイスの列挙と選択のための MMDevice API します。
  • ストリーム管理操作用の WASAPI します。

必要条件

バージョン
Windows SDK Windows 7
Visual Studio 2008

 

サンプルのダウンロード

このサンプルは、次の場所にあります。

場所 パス/URL
Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedTimerDriven\...

 

サンプルのビルド

CaptureSharedTimerDriven サンプルをビルドするには、次の手順に従います。

  1. Windows SDK の CMD シェルを開き、CaptureSharedTimerDriven サンプル ディレクトリに変更します。
  2. CaptureSharedTimerDriven ディレクトリ start WASAPICaptureSharedTimerDriven.sln コマンドを実行して、Visual Studio ウィンドウで WASAPICaptureSharedTimerDriven プロジェクトを開きます。
  3. ウィンドウ内から、デバッグ またはリリース ソリューション構成 選択し、メニュー バーから ビルド メニューを選択し、ビルド オプションを選択します。 SDK の CMD シェルから Visual Studio を開かない場合、Visual Studio は SDK ビルド環境にアクセスできません。 その場合、プロジェクト ファイル WASAPICaptureSharedTimerDriven.vcproj で使用される環境変数 MSSdk を明示的に設定しない限り、サンプルはビルドされません。

サンプルの実行

デモ アプリケーションを正常にビルドすると、実行可能ファイル (WASAPICaptureSharedTimerDriven.exe) が生成されます。 これを実行するには、コマンド ウィンドウに「WASAPICaptureSharedTimerDriven」と入力し、その後に必須または省略可能な引数を入力します。 次の例は、既定のマルチメディア デバイスでキャプチャ期間を指定してサンプルを実行する方法を示しています。

WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia

次の表に、引数を示します。

引数 形容
-? ヘルプを表示します。
-h ヘルプを表示します。
-l オーディオ キャプチャの待機時間 (ミリ秒単位)。
-d オーディオ キャプチャの継続時間 (秒単位)。
-m MMCSS の使用を無効にします。
-慰める 既定のコンソール デバイスを使用します。
-通信 既定の通信デバイスを使用します。
-マルチメディア 既定のマルチメディア デバイスを使用します。
-エンドポイント スイッチ値で指定されたエンドポイント識別子を使用します。

 

アプリケーションを引数なしで実行すると、使用可能なデバイスが列挙され、キャプチャ セッション用のデバイスを選択するようにユーザーに求められます。 既定のコンソール、通信、およびマルチメディア デバイスの後に、デバイスとエンドポイント識別子が表示されます。 期間が指定されていない場合、指定したデバイスからのオーディオ ストリームが 10 秒間キャプチャされます。 アプリケーションは、キャプチャされたデータを一意の名前の.wav ファイルに書き込みます。

CaptureSharedTimerDriven は、タイマー駆動型のバッファリングを示しています。 このモードでは、クライアントは一定期間 (-d スイッチ値で指定された待機時間の半分 (ミリ秒単位) 待機する必要があります。 クライアントが起動すると、処理期間の途中で、エンジンから次のサンプル セットがプルされます。 各処理がバッファリング ループに入る前に、クライアントは、データがキャプチャ バッファーをオーバーランしないように、使用可能なキャプチャ データの量を確認する必要があります。 指定されたデバイスからキャプチャされたオーディオ データは、イベント ドリブン バッファリングを有効にすることで処理できます。 このモードは、CaptureSharedEventDriven サンプルで示されています。

コア オーディオ API を使用する SDK サンプルを する