2012-06-07 3 views
3

У меня проблема с моим видеоконтентом. Я хочу загрузить видео с моего диспетчера view, и я получаю эту ошибку: [NSURL initFileURLWithPath:]: параметр nil string Когда я пытаюсь загрузить видео с URL-адреса, видео не появится.IOS [NSURL initFileURLWithPath:]: параметр nil string при загрузке видео

Я уверен, что моя переменная targetURN не равна нулю.

Отсюда я загружаю мой ViewController:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    switch (buttonIndex) { 
     case 0: 
      [self openVideoView:@"Video"]; 
     break; 
     case 1: 
      [self openWebview:@"About"]; 
     break; 
     case 2: 
      [self openWebview:@"http://www.url.com"]; 
     break; 
    } 
} 

- (void)openVideoView:(NSString *)url{ 
    IDPVideoView *vv = [[IDPVideoView alloc] initWithURN:url]; 
    [self presentModalViewController:vv animated:NO];  
} 

В моей ViewController:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSURL *videoURL = nil; 

    if ([self.targetURN hasPrefix:@"http"]) 
    { 
     videoURL = [NSURL URLWithString:targetURN]; 
    } 
    else 
    { 
     videoURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:targetURN ofType:@"mp4"]]; 
    } 
    if(videoURL != nil) { 
     MPMoviePlayerController *moviePlayer = 
     [[MPMoviePlayerController alloc] initWithContentURL:videoURL]; 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer]; 

     moviePlayer.controlStyle = MPMovieControlStyleDefault; 
     moviePlayer.shouldAutoplay = YES; 
     [moviePlayer prepareToPlay]; 
     [self.view addSubview:moviePlayer.view]; 
     [moviePlayer setFullscreen:YES animated:YES]; 
    } 
} 

ответ

0

вы пробовали выделения URL в первую очередь?

NSURL *vidURL = [[NSURL alloc] initWithString:self.targetURN]; 

как общий совет, попробуйте использовать self.targetURN все время, или синхронизировать его с другим именем, как

@synchronize targetURN = _targetURN 

, а затем использовать _targetURN в ваших code.this убеждается, что вы (в любом случае) используйте право собственности.

(конечно, это идет для всех свойств)

+0

Пробовал это, но это не работает. Я боюсь. – Smek

+0

Проблема решена с новыми проектами Xcode 4.2, по умолчанию включен ARC. Мне пришлось объявить переменную MPMoviePlayerController в файле заголовка. – Smek

+0

Для меня это произошло, когда я добавил фильм в проект, но не установил флажок «ДОБАВИТЬ В ЦЕЛЬ», как-то это автоматически отключается при добавлении фильмов. – fellowworldcitizen

0

Я решил часть ошибки, добавив следующую строку

NSString *urlString = [NSString stringWithFormat:url]; 

- (void)openVideoView:(NSString *)url{ 
    NSString *urlString = [NSString stringWithFormat:url]; 
    IDPVideoView *vv = [[IDPVideoView alloc] initWithURN:url]; 
    [self presentModalViewController:vv animated:NO];  
} 

Но видео еще не отображается.

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