在应用程序启动时启动视频失败 iOS

launching video at application launch fails iOS

我想在用户每次在 iOS 设备上打开应用程序时显示一个小视频(3 秒视频)。 (如果应用程序是从内存中打开的,则不显示视频)

我将 "dashboard" 视图作为根视图控制器。

我在 SO 和其他网站上搜索了所有 link,但 none 有帮助。

有时我的视频可以正常播放,但稍后应用程序会崩溃。

我的仪表板视图来自 "Main.storyboard",但故事板上没有控件。 只有 link 导航栏是通过故事板完成的。

这是我的代码。

- (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

但是应用程序崩溃了, 它既不显示视频又显示仪表板,而不是直接显示仪表板。

谁能指导我,我做错了什么。

提前致谢。

如果我在 SO 上错误地遗漏了任何 link,请同时提供。 谢谢

试试这样调用方法,

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

请启用以下路径下的选项 "Enable Zombie Objects": 编辑方案 -> 诊断 -> 启用僵尸对象

并让我知道日志。