動画作成ツール「Crystel Engine」ブログ

動画作成ツール「Crystel Engine」の開発日誌です。良かったら「CE」と略して下さい。現在はMAD動画を作るためのツールとして稼動中。MADデビューしたい方は、ぜひどうぞ!ロマンはどこだ!?を胸に日々開発中

スポンサーサイト

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

PageTop

DirectSoundのノイズ問題解決?

音声を再生するとノイズが乗る問題。一応鳴らなくなりました。
解決方法は、こんな感じ。

まず、何が問題だったかというとソースレベルのバグでした。
サウンドを鳴らすためのセカンダリバッファにWavデータのdata以降を
書き込まなければいけないところ、オフセットアドレスを間違い、
fmtから書き込んでしましました
よって、fmtからdataまでの意味不明なデータがセカンダリバッファに書き込まれ、
ノイズが乗っていたということでした。

とある書籍をコピペしてたのですが、私の書き方が悪いのか?書籍のミスか?
以下、一部ソース・・


// バッファーに音データを書き込む
FILE* fp=_tfopen(szFileName,_T("rb"));
if(!fp){
CleanUp();
mmioClose(hMmio, 0);
return E_FAIL;
}
       //これが間違えてた
// fseek(fp,riffckInfo.dwDataOffset + sizeof(FOURCC),SEEK_SET);
//こちらでdataまでのオフセットが書き込めた模様。
fseek(fp,ckInfo.dwDataOffset,SEEK_SET);

BYTE* pWavData=new BYTE[ dwBufferSize ];
fread(pWavData,1,dwBufferSize,fp);//まずは、一時的な場所(pWavData)に波形データを読み込み
for( DWORD i = 0; i < dwBufferSize; i++ )
{
*((BYTE*)pBuffer+i) = *((BYTE*) pWavData+i); ////まずは、一時的な場所の波形データをセカンダリバッファーにコピーする
}
fclose(fp);

PageTop

コメント


管理者にだけ表示を許可する
 

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