iOS App:从mainBundle崩溃播放mp4文件

时间:2013-06-28 05:04:42

标签: ios file mp4

我正在尝试从我的应用程序内部播放test.mp4,但它崩溃时出现以下错误:

2013-06-28 15:02:40.931 framing[9617:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
*** First throw call stack:
(0x1a5f012 0x176ce7e 0x1a5edeb 0x11839b1 0x118393b 0x28c2 0x1780705 0x6b42c0 0x6b4258 0x775021 0x77557f 0x7746e8 0x6e3cef 0x6e3f02 0x6c1d4a 0x6b3698 0x2ac1df9 0x2ac1ad0 0x19d4bf5 0x19d4962 0x1a05bb6 0x1a04f44 0x1a04e1b 0x2ac07e3 0x2ac0668 0x6b0ffc 0x223d 0x2165)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

以下是代码:

#import "ViewController.h"
#import <QuartzCore/QuartzCore.h>
#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>

@implementation ViewController
@synthesize moviePlayer,movieScreen,viewVideoTitleBg;

-(IBAction)playTheMovie {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
    moviePlayer = [[MPMoviePlayerController
                    alloc]initWithContentURL:[NSURL fileURLWithPath:path]];
    //[self presentMoviePlayerViewControllerAnimated:moviePlayer];
    moviePlayer.controlStyle = MPMovieControlStyleDefault;
    moviePlayer.shouldAutoplay = YES;
    moviePlayer.view.frame = CGRectMake(64,192,895,415);
    [self.view addSubview:moviePlayer.view];
    //[moviePlayer setFullscreen:NO animated:YES];
    [moviePlayer play];
}

我也安装了Frameworks。

我的代码出了什么问题?

3 个答案:

答案 0 :(得分:0)

我最近遇到过这个问题。我的工作是从包中删除视频文件并再次拖放它。

清理并构建,然后再次运行。

但是例如:您应该检查视频文件名称的拼写和大小写以及代码中使用的名称。

答案 1 :(得分:0)

尝试使用[NSURL URLWithString:path];而不是[NSURL fileURLWithPath:path];

答案 2 :(得分:0)

检查是否

[[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"]

返回零。 如果返回nil,则需要将mp4文件添加到xcode项目并选择SELECT&gt; ADD TO TARGET&lt;复选框。