【问题标题】:IOS [NSURL initFileURLWithPath:]: nil string parameter on loading videoIOS [NSURL initFileURLWithPath:]: nil string parameter on loading video
【发布时间】:2012-11-02 15:30:33
【问题描述】:

我的视频内容有问题。我想从我的视图控制器加载一个视频,我得到这个错误: [NSURL initFileURLWithPath:]: 无字符串参数 当我尝试从 url 加载视频时,视频不会显示。

我确定我的变量 targetURN 不为零。

从这里我加载我的视图控制器:

- (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];    
}

在我的视图控制器中:

- (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];
    }
}

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    你试过先分配url吗?

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

    作为一般建议,请尝试始终使用 self.targetURN,或将其同步为其他名称,例如

    @synchronize targetURN = _targetURN
    

    然后在您的代码中使用_targetURN。这确保您(在任何情况下)使用正确的属性。

    (当然这适用于您的所有属性)

    【讨论】:

    • Xcode 4.2 解决的问题新项目默认开启 ARC。我必须在头文件中声明一个 MPMoviePlayerController 变量。
    • 对我来说,这发生在我将电影添加到项目但没有选中“添加到目标”复选框时,不知何故添加电影时自动关闭。
    【解决方案2】:

    我通过添加这一行解决了错误部分

    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];    
    }
    

    但是视频还是没有显示出来。

    【讨论】:

      猜你喜欢
      • 2011-07-01
      • 2022-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2014-04-28
      • 1970-01-01
      相关资源
      最近更新 更多