マルチメディアプログラミング 基本的には上から順番に読んで下さい 誤植や間違い、怪しい箇所、分かり難い箇所の指摘や提言を歓迎します
マルチメディアプログラミング 基本的には上から順番に読んで下さい 誤植や間違い、怪しい箇所、分かり難い箇所の指摘や提言を歓迎します
これまでWave音源の波形をバッファに生成し再生してみましたが、今回はバッファに外部から取り込んだ音を「録音」してみましょう。録音も再生と似たような手順で行うので、バッファの設定さえ出来れば簡単に処理できるようです。 録音の手順 録音の手順は、再生の手順にバッファの登録が入るだけです。再生の時は、波形データが入ったバッファを指定したヘッダをデバイスに渡してオープンしましたが、録音はバッファを指定したヘッダをデバイスに渡し、そのバッファをwaveInAddBuffer()で録音用バッファに登録します。これは、複数のバッファを切り替えながら録音するための仕組みのようですが、今回はバッファを一つしか使わないのでこの辺の処理はあまり考慮する必要はないでしょう。 録音用バッファとバッファを指定したWAVEHDRヘッダは、再生用のものと共用にします。今回の形式も8KHz/16Bitで、録音時間は3秒(
WAVEのマルチバッファリング 概要:途切れる事なく再生を繰り返す 再生終了を通知する MM_WOM_DONE メッセージ処理で 次のWAVEを再生させても一瞬だけ無音が発生してしまいます。 本節では一瞬の無音さえ無い連続再生を可能にする手法を解説します。 ■マルチバッファリング waveOutWrite関数はWAVEバッファを再生デバイスの再生待ちキューに書き込みます(プッシュします)。 再生が終了すればバッファはアプリケーションに返されます。 ここで再生が終了する前に更にwaveOutWrite関数を呼び出せば、 バッファはキューに蓄積され、順番に処理されるのを待つ事になります。 現在の再生を中止して、新しい再生を開始したりはしません。 そして、もしキューが空になってしまったら無音が発生します。 従って、キューが空になる前に新しいバッファを書き込む事ができれば、 永遠に途切れる事のない
waveIn、waveOutでの音声録音・再生プログラミングを作成しています。 内容は、マルチバッファリング機能で音声の取り込みを行い、同時にファイルへの書き込みと、スピーカーへの出力をするのですが、当然waveInで取り込み後にwaveOutするので、元の音声とずれて音がスピーカーへ出力されます。 WAVEFORMATEX構造体のメンバには秒単位での設定値であるため、最小1秒のずれが計算上でます。実際のズレは1秒も無いですが、かなり気になります。 同様の機能のフリーソフトでは、若干のズレはあってもこのプログラムほどではありません。どのようにすれば、このズレを少なく出来るのでしょうか。 どなたか、ご教示願いたくお願いします。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く