掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
リアルタイム音声入出力するには? (ID:70987)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
横槍失礼します。 制御は少しややこしいですがDirectSound/DirectSoundCaptureのほうが向いてるかもしれません。 DirectX所属だけあって非同期での再生/録音が可能です。 #コンソールアプリで使ってみたことはないので、機能が使えない事態になる恐れはありますが・・・ ただし再生音声が録音ストリームに流れ込むようだとハウリングしてしまいますので、 録音の設定で「PC上で再生している音を録音しない」ようにしておく必要はあります。 DirectSoundCaptureによる録音は確保したメモリ領域を循環しながら書き込みます。 次の周回で上書きされるまでに読みだすことで、 録音を停止することなく取得したオーディオデータを読み出すことができます。 DirectSoundの再生側も同様に確保したメモリ領域を循環しながら読みだすので、 DirectSoundが読み込みに来るまでに次のオーディオデータを書き込んでいれば再生できます。 両方とも、安定させるには最低50ms程度の猶予を見たほうが良かったと思いますので、 録音して即座に再生に回すとしても100ms程度は遅延することになるかと思います。 今回の場合、ある程度大きめのバッファを確保して(小さいと周回が短くなり、タイミングがシビアになるので)、 イベント通知を待つのではなく、 タイマーを使って定期的に録音バッファから読み取り可能になっているデータを再生バッファに 転送し続ければ一応、途切れることはないと思います。 また、各バッファへのアクセス時に録音/再生を停止する必要もありませんので、 バッファはそれぞれ1本で足りるでしょう。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.