2015-06-22 137 views
0

每次用户在iOS设备上打开应用程序时,我都想显示一个小视频(3秒视频)。 (如果应用程序从内存打开,然后不显示视频)在应用程序启动失败时启动视频iOS

我有我的“仪表板”视图作为根视图控制器。

我搜索了SO和其他网站上的所有链接,但没有任何帮助。

有时我的视频正在工作,但后来的应用程序崩溃。

我的控制台视图来自“Main.storyboard”,但故事板上没有控件。 只有通过故事板完成导航栏的链接。

这是我的代码。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    [self showVideo]; 
} 


- (void)showVideo 
{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]; 
    NSURL *url = [NSURL fileURLWithPath:path]; 
    NSLog(@"video path :- %@",url); 
    self.navigationController.navigationBar.hidden = YES; 
    self.videoController = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; 
    self.videoController.moviePlayer.controlStyle = MPMovieControlStyleNone; 
    //[self presentMoviePlayerViewControllerAnimated:videoController]; 
    [self.navigationController pushViewController:self.videoController animated:NO]; 

    [self.videoController.moviePlayer play]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlayBackDidFinish:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:self.videoController]; 
} 

- (void) moviePlayBackDidFinish:(NSNotification*)_notification 
{ 
    self.navigationController.navigationBar.hidden = NO; 
    [[NSNotificationCenter defaultCenter] removeObserver:self 
                name:MPMoviePlayerPlaybackDidFinishNotification 
                object:nil]; 

    [self.videoController.view removeFromSuperview]; 
    [self.videoController.moviePlayer stop]; 
    self.videoController = nil; 

    [self.navigationController popViewControllerAnimated:NO]; 
    //[self.view removeFromSuperview]; 
} 

nslog正在打印视频路径。 像

video path :- file:///Users/itshastra/Library/Developer/CoreSimulator/Devices/87C93694-66E8-4884-B087-10E1E4CBA4D1/data/Containers/Bundle/Application/DB6C89D4-EE6D-4830-B208-B4AA89FD8E59/Complaint.app/video.mp4 

但应用程序获取坠毁, 无论它显示的视频,然后仪表盘,不能直接仪表板。

任何人都可以请指导我,我做错了什么。

在此先感谢。

如果错误地错过了我的任何链接,请提供。 谢谢。

+0

你有没有试过叫[self showVideo];从viewWillAppear方法? – Rajesh

+0

是的,我试过了。但它没有显示黑屏。应用程序在那里冻结。 – Sagar

+0

您是否已将视频添加到Xcode目录或复制包资源? – Rajesh

回答

1

尝试调用这样的方法,

- (void)viewDidLoad 
{ 
    [super viewDidLoad];   
    [self performSelector:@selector(showVideo) withObject:nil afterDelay:0.1f]; 
} 
+0

没有工作。 只能工作一次。然后应用程序崩溃, 也没有收到MPMoviePlayerPlaybackDidFinishNotification – Sagar

+1

@RajeshMaurya相反,那么你需要把条件放在'didFinishLaunchingWithOptions'这对我来说是一个最好的解决方案 –

0

请启用选项“启用僵尸对象”以下路径: 编辑计划 - >诊断 - >启用僵尸对象

,让我知道了日志。