Win32API質問箱 Build24
■ このスレッドは過去ログ倉庫に格納されています
0058デフォルトの名無しさん
NGNGうまくいかないところがあるので質問させてください。
データが小さい時はacmStreamConvertを一回呼び出して終わりでこのときはきちんと変換されます。
一方、大きいWAVEファイルを変換する場合に、ループ処理で少しずつ変換させていったところ
関数自体は成功するんですが、いざ再生するとノイズの嵐になります。
以下ソース(StreamHeaderはACMSTREAMHEADERです。)
for(dwOffset=0,dwRest=dwSrcSize;dwRest>0;){
//ソースから読み取り
dwRead = min(dwDefRead,dwRest);
src.FillWaveStream(dwOffset,StreamHeader.pbSrc,dwRead);//dwOffsetからdwReadだけpbSrcにWAVEストリームコピー
dwRest -= dwRead;
dwOffset += dwRead;
//変換
::acmStreamConvert(hAcmStream,&StreamHeader,ACM_STREAMCONVERTF_BLOCKALIGN);
//バッファに書き込み
dst.insert(dst.end(),StreamHeader.pbDst,StreamHeader.pbDst + StreamHeader.cbDstLengthUsed);
}
デバッガで追っていてもエラーコードは返ってきていないので原因が分かりません。
ネットで調べてもacm関連のページはあまり見つからなくて解決できませんでした。
どなたかどこが間違っているか分かる方がいましたら教えてください。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています