我对这种行为有点困惑。
我想做的是, 我有两个不同的应用程序。 一个由我制作,另一个由一个离开公司的人制作。现在我必须完成他的项目。 但是在两个项目中要完成的任务是一样的。
每次打开应用程序时,我必须显示5秒的视频。 像一些品牌视频。 (在愤怒的小鸟应用程序中完成)我检查了SO上的所有链接,但没有帮助任何人。
我的大四学生离开了公司,他使用Main.storyboard导航每个屏幕。 我在使用故事板方面并不是那么好。 在我的应用程序中,我以编程方式创建了导航。
当我的闪屏消失时,
我显示仪表板。
但在显示仪表板之前,我必须每次都显示视频。
所以我做了什么,
我只为名为VideoViewController
的视频创建了一个视图控制器,
并从dashboardView的ViewDidLoad
调用该视图控制器。
当我的视频完成时
然后通过使用NSNotificationCenter我删除了VideoViewController
。
当我点击url路径时,它的打印正确,但我的应用程序崩溃后。 我通过应用ExceptionalBreakpoints来检查它,但没有帮助。
以下是我在ViewDidLoad
VideoViewController
内发布视频的代码
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]];
NSLog(@"video path :- %@",url);
playercontroller = [[MPMoviePlayerController alloc] init];
[playercontroller setContentURL:url];
[playercontroller.view setFrame:CGRectMake (0, 0, 320, 460)];
[self.view addSubview:playercontroller.view];
[playercontroller play];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:playercontroller];
我正在从信息中心推送VideoViewController
-(void)viewDidAppear:(BOOL)animated
方法
因为我做错了什么。 由于我的网址很好,所以加载视频毫无疑问。
请指导我。 还指导我使用故事板实现相同的任务。
提前致谢。
答案 0 :(得分:0)
你不应该像那样硬编码设置框架。
假设'self'是一个ViewController(已经从RootViewController一直正确地添加了addChildViewController),请尝试下一步:
NSString *path = [[NSBundle mainBundle] pathForResource:videoFileName ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:path];
MPMoviePlayerViewController *videoController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:videoController];
[videoController.moviePlayer play];