在app delegate中调用MPMoviePlayerViewController

时间:2015-04-29 10:52:26

标签: ios objective-c mpmovieplayercontroller

我在app中使用故事板。 使用故事板可以正确连接所有视图 现在我想做的新事是,

当我的启动画面关闭时,我想在每次用户打开应用时显示3秒视频。

我知道如何从viewcontroller加载视频, 以下是我用来启动视频的代码。

Attempt to present <MPMoviePlayerViewController:> on <DashbaordVC:> whose view is not in the window hierarchy

但是当我在rootViewController应用程序中使用此代码时崩溃说

[self.navigationController pushViewController:self.videoController animated:NO];

但是当我在使用导航控制器(No Storyboard)的其他演示应用程序中使用相同的代码时,它工作正常。 但是在这个使用故事板的应用程序中,它会崩溃。

我也试过

ApplicationDidFinishLaunching

然后我考虑在AppDelegate文件中添加此代码并从MPMoviePlayerViewController

调用该方法

但没有帮助。 任何人都可以指导我....同样的 还有如何在app delegate中添加{{1}}。

1 个答案:

答案 0 :(得分:0)

我认为您可以通过MPMoviePlayerController执行此操作。请尝试以下代码

         NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"];
         NSURL *url = [NSURL fileURLWithPath:path];

        videoPlayer = [[MPMoviePlayerController alloc] init];
        [videoPlayer.view setFrame:CGRectMake(0.0, viewTopbar.frame.size.height,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - (viewTopbar.frame.size.height + 50.0))];
                [videoPlayer setMovieSourceType:MPMovieSourceTypeFile];

        [videoPlayer setContentURL:url];
        [videoPlayer setControlStyle:MPMovieControlStyleEmbedded];
        [videoPlayer setScalingMode:MPMovieScalingModeNone];
        [videoPlayer prepareToPlay];
        [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:videoPlayer];

       [self.view addSubview:videoPlayer.view];
       [videoPlayer play];

如果你不想全屏,那么就像这样使用它

[videoPlayer setControlStyle:MPMovieControlStyleNone];