次の方法で共有


DuckingCaptureSample

このサンプル アプリケーションでは、通信ストリームを開いたり閉じたりして、アプリケーションがストリームの減衰を実装できるダッキング イベントを発生させる方法を示します。 このアプリケーションでは、コア オーディオ API を使用して通信デバイスからオーディオ データを読み取り、出力デバイスで再生するチャット クライアントを実装します。

このトピックは、次のセクションで構成されています。

説明

このサンプルでは、次の機能について説明します。

  • マルチメディア デバイスの列挙と選択のための MMDevice API
  • 通信キャプチャとレンダリング デバイス、ストリーム管理操作、ダッキング イベントの処理にアクセスするための WASAPI
  • 通信デバイスにアクセスし、オーディオ入力をキャプチャするための WAVE API

要件

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

 

サンプルのダウンロード

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

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

 

サンプルのビルド

the DuckingCaptureSample サンプルをビルドするには、次の手順を使用します。

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

サンプルの実行

アプリケーションを正常にビルドすると、実行可能ファイル (DuckingCaptureSample.exe) が生成されます。 これを実行するには、[デバッグ] メニューから [デバッグの開始] または [デバッグなしで開始] を選択するか、コマンド ウィンドウに「DuckingCaptureSample」と入力します。

DuckingCaptureSample は、既定のコンソール デバイスからオーディオをキャプチャするための 2 つの実装 (WASAPI API と Wave API) をユーザーに提供します。 キャプチャ セッションを開始するには、モードを選択し、アプリケーションのユーザー インターフェイスで [開始] をクリックします。 セッションを終了するには、[停止] をクリックします。 ユーザーによって指定されたデバイス (入力または出力) に応じて、アプリケーションは MMDevice API を使用して、既定のレンダリングまたはキャプチャ通信デバイスへの参照を取得します。 ユーザーがチャット セッションを開始すると、アプリケーションは以下のタスクを実行します。

  • イベント駆動型モードでオーディオ クライアントを作成および初期化します。
  • サンプルでキャプチャまたはレンダリングの準備ができていることを通知するイベント ハンドルにクライアントを関連付けます。
  • トランスポート用のキャプチャ クライアントとレンダリング クライアントを設定します。
  • チャット スレッドを作成し、オーディオ エンジンを起動します。

オーディオ データをキャプチャする場合、各処理パスで、サンプルはキャプチャ クライアントを使用して、バッファーで利用可能なキャプチャされたデータの合計量を取得し、既定の入力デバイスからデータを読み取ります。また、パケットを解放して、キャプチャされたデータの次のセットを読み取るためにバッファーを使用可能にします。

レンダリングの場合、アプリケーションは、キャプチャ エンドポイント バッファーで再生するためにキューに登録されるデータの量を決定します。 それに応じてバッファーに書き込み、すべてのデータが書き込まれるまで、次の処理パスの準備としてバッファーを解放します。 レンダリングの場合、起動時にオーディオ エンジンがグリッチするのを防ぐため、サイレント フレームが事前に登録されます。 DuckingCaptureSample では、ボリューム ミキサーからレンダー ストリームを非表示にする方法も表示されます。

ストリーム減衰機能について詳しくは、「通信デバイスの使用」をご覧ください。

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