Я делаю приложение iOS. Одна из его функций заключается в том, что он может сохранять записи и сохранять аудиофайлы.AVAsset не распознает NSURL - Crashing - iOS
Для того, чтобы сохранить URL, записанных звуковых файлов, я их хранение в NSUserDefaults качестве путей файлов, как так:
file:///var/mobile/Containers/Data/Application/17F8E799-D7E1-4B3C-9DFE-7BA48E346314/Documents/recordName.aif
Я использую библиотеку под названием «FVSoundWaveDemo», чтобы попытаться отобразить звуковую волну для записанный файл. Но у меня есть проблемы с URL, ...
Пример на «FVSoundWaveDemo» загружает локально импортированный файл как так:
NSString* filename = [NSString stringWithFormat:@"song1.m4a"];
NSURL* url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:filename ofType:nil]];
_soundWaveView.soundURL = url;
Вы видите немного с «song1.m4a», ну я хочу замените это и попросите приложение использовать URL-адрес filePath. Подобно URL-адресу filePath, указанному выше в моем вопросе.
Я пробовал всевозможные вещи, например, пытаться «преобразовать» filePath в обычный URL-адрес и пытаться использовать AVAssets и т. Д. Но все, что я пытаюсь просто приходит с этой ошибкой:
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
И это потому, что библиотека, я использую, использует AVAssets как так:
AVAssetReader* reader = [[AVAssetReader alloc] initWithAsset:songAsset error:&error];
AVAssetTrack* songTrack = [songAsset.tracks objectAtIndex:0];
NSDictionary* outputSettingsDict = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatLinearPCM],AVFormatIDKey,
[NSNumber numberWithInt:1],AVNumberOfChannelsKey,
[NSNumber numberWithInt:8],AVLinearPCMBitDepthKey,
[NSNumber numberWithBool:NO],AVLinearPCMIsBigEndianKey,
[NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
[NSNumber numberWithBool:NO],AVLinearPCMIsNonInterleaved,
nil];
Так как земляной я получаю AVAsset к просто работайте с URL-адресом filePath?
Помните, что я пытаюсь получить его для просмотра записанного аудиофайла, сохраненного приложением, NOT локально импортированный аудиофайл, который разработчик может добавить в проект Xcode.
Я застрял на этом уже несколько дней, если вы можете мне помочь, это было бы очень благодарно, спасибо.
Спасибо за ваше время, Дэн.
Ничего себе это действительно спасло меня. Я был удивлен, что этот ответ так трудно найти. Спасибо! –
В противном случае для удаления «file: //» просто do '[yourURL path]' будет работать. – iPatel