我在应用程序中使用故事板。使用情节提要板,所有视图均已正确连接现在我要做的是,
当我的启动画面关闭时,我希望每次用户打开应用程序时都显示3秒的视频。
我知道如何从ViewController加载视频,以下是我用来启动视频的代码。
- (void)showVideo
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"video path :- %@",url);
videoController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
videoController.moviePlayer.controlStyle = MPMovieControlStyleNone;
[self presentMoviePlayerViewControllerAnimated:videoController];
[videoController.moviePlayer play];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:videoController];
}
- (void) moviePlayBackDidFinish:(NSNotification*)_notification
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
[videoController.view removeFromSuperview];
[videoController.moviePlayer stop];
videoController = nil;
[self.view removeFromSuperview];
}
但是当我在rootViewController应用程序中使用此代码时,崩溃
Attempt to present <MPMoviePlayerViewController:> on <DashbaordVC:> whose view is not in the window hierarchy
但是,当我在使用导航控制器(无Storyboard)的其他演示应用程序中使用相同的代码时,它可以正常工作。但是在使用故事板的应用程序中,它崩溃了。
我也试过了
[self.navigationController pushViewController:self.videoController animated:NO];
然后我想到了在AppDelegate文件中添加此代码,并从中调用该方法 ApplicationDidFinishLaunching
但是没有帮助。谁能指导我...。同样也是如何添加MPMoviePlayerViewController
应用程序委托。
我认为您可以通过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];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句