Наличие проблемы, получающей URL для ресурса по некоторым причинам: Этот код находится в viewDidLoad, и он работал в других приложениях, но не здесь по некоторым причинам:
NSString* audioString = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"wav"];
NSLog(@"AUDIO STRING: %@" , audioString);
NSURL* audioURL = [NSURL URLWithString:audioString];
NSLog(@"AUDIO URL: %d" , audioURL);
NSError* playererror;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&playererror];
[audioPlayer prepareToPlay];
NSLog(@"Error %@", playererror);
ЖУРНАЛ ПРОИЗВЕЛ:
АУДИО СТРОКА: /var/mobile/Applications/D9FA0569-45FF-4287-8448-7EA21E92EADC/SoundApp.app/sound.wav
АУДИО URL: 0
Ошибочная Ошибка Код Domain=NSOSStatusErrorDomain =-50 "Операций не могла быть завершена. (Ошибка OSStatus-50.)"
Ваша строка не имеет протокола, поэтому он недействителен URL . Попробуй это ...
NSString* expandedPath = [audioString stringByExpandingTildeInPath];
NSURL* audioUrl = [NSURL fileURLWithPath:expandedPath];
Просто измените одну строку к этому:
NSURL* audioURL = [NSURL fileURLWithPath:audioString];
Вы проходите Audiourl
в вашем NSLog
Метод как % D
, следовательно, почему вы получаете 0. Если вы передаете его как объект с % @
, вы получите NULL
.
Попробуйте пройти в AudioPlayer, как это, и пропустите строку.
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"wav"]];
Вы не читаете ответы достаточно тщательно - вы используете URLWITHSTRING, когда вы должны использовать FileRLWithPath. Вы не можете пройти файл: // Путь к URLWITHSTRING. Я думаю, вам также нужно подготовить файл: // в передней панели строки, поскольку у вас есть только путь (который, как указал, не имеет протокола).