Я пытаюсь реализовать приложение для обработки звука на iPhone, используя пример приложения SpeakHere в качестве отправной точки. Приложение включает в себя манипулирование буферизованными аудиосэмплами во время воспроизведения. Когда я умножаю выборки на дробное число (например, 0,9), я получаю шум в результате. Самое странное в этом то, что при умножении сэмплов на целые числа (например, 1,0, 2,0) или добавлении или вычитании из них воспроизведение звучит, как и ожидалось.
Я делаю это в функции PlayCallback AudioPlayer.m со следующим фрагментом кода:
//------------------
//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
Может ли кто-нибудь указать мне, что я делаю неправильно? Я боролся с этим уже пару дней, и я полностью потерян.
Спасибо!