0

私はマイクデバイスを列挙するためにいくつかのコードを見つけました(いくつかの助けを借りて)、そして各デバイスから「わかりやすい名前」と「clsid」情報を取得することができます。

私はGraphEd.exeをいじくり回して、directshowからオーディオを取得し、それをファイルに書き込む方法を理解しようとしました(現在、形式については心配していません。wavは問題ないはずです)。適切な組み合わせを見つけるために。

私が読んだ記事の1つは、このWindows SDKサンプルにリンクしていますが、コードを調べたところ、そのコードの使用方法にかなり混乱してしまいました。出力ファイルを設定するか、使用するオーディオキャプチャデバイスを指定します。

また、優れた機能を備えたオーディオレコーダーを備えたcodeguruの記事に出くわしましたが、オーディオデバイスを選択するためのインターフェイスがなく、使用する録音デバイスを静的に選択する場所が見つからないようです。

Windows SDKサンプルの使用方法を理解することに最も興味があると思いますが、2つのアプローチのいずれかについての説明は素晴らしいでしょう。

編集:win32 COMプログラマーとしての私の知識と能力は規模が非常に小さいので、これが簡単な場合は、5歳のように説明してください。

4

2 に答える 2

3

DirectShowを使用してオーディオをファイルに録音するには、すでに理解しているはずの適切なフィルターグラフを作成する必要があります。パーツは次のとおりです。

  1. モニカ(CLSIDではありません!)を介してインスタンス化するデバイス自体は、通常はPCM形式です
  2. ストリームをコンテナ形式に変換するマルチプレクサコンポーネント
  3. ファイル互換ストリームを取得してファイルに書き込むファイルライターフィルター

利用可能な標準コンポーネントがないため、トリッキーな瞬間は#2です。ただし、Windows SDKサンプルには、欠落している部分(WavDest Filter Sample )が含まれています。作成して使用できるようにすると、デバイスから.WAVファイルに記録するグラフを作成できます。

グラフは次のようになり、プログラムでも簡単に作成できます。

ここに画像の説明を入力してください

Google EarthにWavDestのバリエーションがインストールされていることに気付きました。自分でビルドするのに問題があり、ビルド済みのバイナリを探している場合に備えて。

于 2012-10-12T20:06:33.050 に答える
0

DirectShowデバイスから録音してファイルに出力するようにffmpegに指示できます。

于 2012-11-26T19:37:06.540 に答える