Я думаю, что мой вопрос заключается в том, как предварительно настроить песочницу iOS, чтобы в ней был аудиофайл, чтобы после сборки я мог сразу же протестировать свою структуру аудиоочереди.
Я работаю над приложением iOS для воспроизведения звука из потока, который я размещаю на своем сервере. Прежде чем заняться получением данных из HTTP-потока, я решил начать с использования Audio Queue Services для воспроизведения файла с моего телефона. Насколько я понимаю, если вы хотите одновременно воспроизводить несколько аудиопотоков, вам нужно использовать Audio Queue, а не AVPlayer или любой другой сервис.
У меня проблема в том, что я не могу настроить свой CFURLRef, потому что не могу найти свой файл.
AudioBufferPlayer *player = (AudioBufferPlayer*) inUserData;
if (player.playing) {
NSString *path = @"/Users/acopp/Library/Application Support/iPhone Simulator/5.1/Applications/F9CA1197-A661-4B2F-9B42-68A991F61B19/";
const char *filePath = [path cStringUsingEncoding:[NSString defaultCStringEncoding]];
CFURLRef audioFileURL = CFURLCreateFromFileSystemRepresentation(NULL, (const UInt8*)filePath, strlen(filePath), false);
OSStatus result = AudioFileOpenURL(audioFileURL, kAudioFileReadPermission, kAudioFileCAFType, player.mAudioFile);
UInt32 numBytesReadFromFile;
UInt32 numPackets = player.mNumPacketsToRead;
AudioFileReadPackets(
*(player.mAudioFile),
false,
&numBytesReadFromFile,
NULL,
player.mCurrentPacket,
&numPackets,
inBuffer->mAudioData
);
if (numPackets > 0) {
inBuffer->mAudioDataByteSize = numBytesReadFromFile;
AudioQueueEnqueueBuffer(inAudioQueue, inBuffer, 0, NULL);
player.mCurrentPacket += numPackets;
}
Я получаю сообщение об ошибке EXC_BAD_ACCESS в моих AudioFileReadPackets, и мой результат OSStatus в этот момент установлен на -50, поэтому я думаю, что мой вызов AudioFileOpenURL не работает.
Я думаю, что моя проблема в том, что мой *path на самом деле ни на что не указывает. Проблема в том, что когда я иду в
@"/Users/acopp/Library/Application Support/iPhone Simulator/5.1/Applications/F9CA1197-A661-4B2F-9B42-68A991F61B19/"
Мои четыре варианта: Demo3, Documents, Library и temp. Ни в одном из них нет моего файла quick.caf, который я добавил в свой проект.
TL, DR. Если я что-то не упустил, я думаю, что спрашиваю, как добавить аудиофайлы в песочницу перед сборкой, чтобы я мог протестировать свой код на симуляторе iPhone.