SpeakHere サンプル アプリを出発点として、iPhone サウンド処理アプリを実装しようとしています。このアプリでは、再生中にバッファリングされたオーディオ サンプルを操作します。サンプルに分数 (たとえば 0.9) を掛けると、結果としてノイズが発生します。最も奇妙な点は、サンプルを整数 (1.0、2.0 など) で乗算したり、サンプルに加算または減算したりすると、再生音が期待どおりに聞こえることです。
次のコード スニペットを使用して、AudioPlayer.m の PlaybackCallback 関数で実行しています。
//------------------
//If buffer samples are multiplied by 0.9 we get noise. If we multiply it by 1.0 or add to it everything's fine.
short *buffer = (short *)calloc(1, numPackets * 2);
memmove(buffer, bufferReference->mAudioData, numPackets * 2);
for (int i = 0; i < numPackets; i++)
{
buffer[i] *= 0.9;
//buffer[i] *= 1.0;
//buffer[i] += 10.0;
}
memmove(bufferReference->mAudioData, buffer, numPackets * 2);
free(buffer);
buffer = NULL;
//-------------------
完全なプロジェクトはここからダウンロードできます: http://depositfiles.com/files/lmnkq68n8
誰かが私が間違っていることを教えてもらえますか? 私はすでに数日間苦労しており、完全に迷っています。
ありがとうございました!