#ios #buffer #core-audio #mixer
#iOS #буфер #ядро-аудио #микшер
Вопрос:
Я использую MixerHostAudio для одновременной загрузки нескольких аудиофайлов.
Я не могу загрузить все файлы в память, потому что приложение ВЫЛЕТАЕТ!
Может ли кто-нибудь помочь мне реализовать алгоритм для буферизации файлов thesae?
Или, по крайней мере, укажите мне на пример?
Мне удалось зайти так далеко:
Я точно определил код, в котором вызывается вызов функции рендеринга:
UInt32 numberOfPacketsToRead = (UInt32) totalFramesInFile;
result = ExtAudioFileRead (audioFileObject, amp;numberOfPacketsToRead, bufferList);
free (bufferList);
if (noErr != result) {
[self printErrorMessage: @"ExtAudioFileRead failure - " withStatus: result];
// If reading from the file failed, then free the memory for the sound buffer.
free (soundStructArray[audioFile].audioDataLeft);
soundStructArray[audioFile].audioDataLeft = 0;
if (2 == channelCount) {
free (soundStructArray[audioFile].audioDataRight);
soundStructArray[audioFile].audioDataRight = 0;
}
ExtAudioFileDispose (audioFileObject);
return;
}
— ТЕПЕРЬ мне не хватает только той части, когда буферизация завершена, и я могу сказать программе получить следующий фрагмент….
Есть идеи?
Спасибо
Эрнан
Ответ №1:
Для обработки звука необходимо использовать кольцевой буфер.
Простой пример можно найти здесь.
Комментарии:
1. Спасибо, братан .. Я проверю это. (Имеет какое-либо отношение к дабстепу?)
2. У тебя случайно нет примеров для Objective — C?