2014-04-20 3 views
0

Я пытаюсь загрузить файл M4A, но я не могу получить путь к файлу с помощью NSBundle.NSBundle pathForResource nil

NSString *fileURLString = [[NSBundle mainBundle] pathForResource:fileName ofType:fileExtension]; 
NSURL *fileToBePlayed = [[NSURL alloc] initWithString:fileURLString]; 

tourAudioPlayer = [tourAudioPlayer initWithContentsOfURL:fileToBePlayed error:nil]; 

Когда я запускаю код отладчик показывает, что fileURLString равен нулю, и, таким образом, то и последующие два объекта.

Я добавил файл в каталог Supporting Files и подтвердил, что этот файл включен в Ресурсы копирования Bundle в разделе Target> Build Phases.

К сожалению, магия Clean и Build в этом случае не помогла мне. Есть ли какой-то этап в загрузке файла, который мне не хватает?

+1

Не могли бы вы показать, что значения в 'fileName' или' fileExtension'? – Larme

+0

Иногда Xcode очень путается с внешними файлами, добавленными в ваш проект, и иногда вы можете исправить его, полностью удалив приложение с устройства/симулятора и переустановив его. Кроме того, если вы делаете это в устройстве, уверены ли вы в капитализации имени файла (поскольку устройство чувствительно к регистру)? В стороне, если бы мне нужен URL-адрес, я бы использовал 'URLForResource', чтобы сохранить переход от пути к URL-адресу, но ясно, что это не проблема здесь ... – Rob

+0

Проверьте комплект, чтобы узнать, находится ли файл в нем. Он должен быть в ~/Library/Application Support/iPhone Simulator/7.1/Applications. – EricS

ответ

0

Просто попробуйте это ....

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSURL *vedioURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:FileName ofType:FileType]]; 
    MPMoviePlayerViewController *videoPlayerView = [[MPMoviePlayerViewController alloc] initWithContentURL:vedioURL]; 
    [self presentMoviePlayerViewControllerAnimated:videoPlayerView]; 
    [videoPlayerView.moviePlayer play]; 
} 
0

Я решил проблему, которая оказывается, были две глупые проблемы.

Первой проблемой было то, что я использовал initWithString: вместо fileURLWithPath :. Ленивое чтение документации с моей стороны.

Вторая проблема была просто смущающим недосмотром. Предоставляемый фрагмент кода представляет собой начальное создание AVAudioPlayer, и поэтому я следовал, чтобы выделить место для него в куче.

Выполнение внесенных изменений устраняет проблему. Спасибо всем, кто предложил советы и поддержку.

Смежные вопросы