スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DirectSound

どうにも再生ラグが消えなかったので、いろいろネットで調べたところWindowsXP時代ではWaveIn、WaveOutのラグが大きい、とのことでした。
Vistaではこの辺の仕様が全面的に改善されていてラグは少ないようですが、WaveIn、WaveOut自体ラグは付き物なのかもしれません。となればプログラムではどうしようもない。

現在50分の1秒のバッファを20個程度用意し、1個録音完了したら即再生、再生終了したら即録音バッファに登録をループさせていますが、録音完了から再生終了までバッファ10個分はないと安定動作しないので、ラグは50分の1秒×10、つまり0.2秒以上はありそう。(他のプログラムの動作で再生動作が遅れた場合録音バッファが増加してしまうのでバッファが一定以下になるようにしてる。)
この0.2秒ってのはバッファサイズを100分の1にしてもそうなってしまうことからイベント発生に遅延がある予感。

それが仕様なら別の録音再生手段を使うしかないわけで。。
DirectSoundの登場ですな。
まだ仕様とか全然わかりませんが、一度試してみたいですねー。


■公開について
雑な作りなので公開したら不具合たくさん見つかりそうな予感。
音転送やってる実プログラムの方はGUI側で強制キルされることがあたりまえに行われるわけですが、このとき音転送プログラムのメモリ放置。OS側がなんとかやってくるけどなんか不安。
まぁ動作中はメモリ確保なんてしないのでリークはしないですが、メッセージを渡してしっかり終了させたいなぁ。GUI側もかなりお粗末。

そんなこんなでまだ公開できません。
(この手のアプリは山ほどありそうだし。)

コメントの投稿

非公開コメント

Go To 物置。
プロフィール

書いてる人:つん

まったりのんびり。書いてる人の息抜きブログです。

多分連絡先↓
metal_tsun@yahoo.co.jp

カテゴリー
リンク
月別アーカイブ
バロメーター
Java歴:2005年2月から今まで。
3DCG歴:2005年8月から数年。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から数年。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月からちょっと。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
CSS歴2012年5月から今まで。

ブログ開始日2005/10/11


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。