- ベストアンサー
DirectSoundのCaptureSoundについて
MicrosoftのCaptureSoundについてです。 マイク入力により音声を録音すると、wavに変換されると思いますが、 「保存しながら変換しているのか・保存してから変換しているのか」を教えていただきたいです。 あと、よろしければそれを判別した部分もお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
><capturesound.cpp>のコードの中の何行目から何行目辺りで 私が提示した参照URLをご覧になりましたか? ズバリそのもののコードが書かれています。 ソースにもCopies data from the capture buffer to the output bufferとコメントも書かれていますし、RecordCapturedDataなどで検索すればわかると思ったのですが。。。 #Microsoft DirectX SDK (August 2007)でも確認しました。
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
手元にあるのは 2007年6月の SDK なのでこれに従いますが, RecordCapturedData という関数でファイルに出力しています. マイクから入力されたデータは DirectSound によって (メモリ上の) キャプチャバッファにためられ, 一定量になるとメッセージが飛ぶので, そのタイミングで (RecordCapturedData により) ファイルに出力する, という流れです.
お礼
回答ありがとうございます。 RecordCapturedData関数の場所を見てみました。 知識不足でまだなんとなくでしか返事ができませんが、お尋ねする前よりも進展できました。 時間はかかると思いますが必ず理解できるよう励みます。 また解らなくなったときにはこの場をかりてお願いしたいと思います。
- Tacosan
- ベストアンサー率23% (3656/15482)
そもそも「保存しながら変換」というのが意味不明 (「保存」って何? 「変換」って何?) だったりしますが, その「CaptureSound」というのが DirectX SDK のサンプルにあるものなら, 「キャプチャと同時に保存」です.
お礼
Tacosanさん> 回答ありがとうございます。 まだまだ勉強不足で、質問内容・表現が明確でなく、すいません。 DirectX SDK のサンプルのものです。ありがとうございます。 マイク入力するときは別の拡張子だと思いますが、音声をパソコンのフォルダに保存するときには「wav」になっているので、 コードのどの部分でその作業が行われているのか? と思いました。
- aris-wiz
- ベストアンサー率38% (96/252)
>「保存しながら変換しているのか・保存してから変換しているのか」 これはそれを書いたプログラマ次第でしょう。 スレッドを使ったりして保存しながら録音しているのか、 録音が終わった後に全てをファイルに書き出しているのかに よります。 >wavに変換 変換というのが何を指しているのか良くわかりませんが、 WAVはチャック以外のデータはリソース上のデータを そのまま書き出しています(リソース交換)。 wavファイルというのは、そのデータ+サイズなどの情報を 先頭に書き込んだファイルの事を指します。 以下のようなプログラムで保存されるものです。 http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/htm/writingtoawavfile.asp (あまり深く見ていませんがサンプルは書き込みながら録音するタイプ) >よろしければそれを判別した部分もお願いします それって何?
お礼
aris-wizさん> 回答ありがとうございます。 質問内容があまり明確でなく、すいません。 保存しながら、というのを作りたいと思ってます。載せていただいたMSDNをもっとしっかり勉強します。 「それを判別」というのは、<capturesound.cpp>のコードの中の何行目から何行目辺りで書き出しを行っているのか、を知りたいです。
お礼
回答ありがとうございます。 URL先に書かれていたことがやっと、なんとなくですが解るようになりました。 RecordCapturedData関数の細かい内容などはまだまだ理解できていない状態ですが、今回お尋ねしたことで、だいぶ気持ちよくなりました。 またこの場をかりてお尋ねすることがあると思いますが、良かったらお願いします。