【发布时间】:2015-06-22 21:23:22
【问题描述】:
我想在用户每次在 iOS 设备上打开应用程序时显示一个小视频(3 秒视频)。 (如果应用是从内存中打开的,则不显示视频)
我将“仪表板”视图作为根视图控制器。
我搜索了 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
但是应用程序崩溃了, 它既不显示视频,也不显示仪表板,而不是直接显示仪表板。
谁能指导我,我做错了什么。
提前致谢。
如果我错误地错过了 SO 上的任何链接,请同时提供。 谢谢。
【问题讨论】:
-
你试过调用[self showVideo];来自 viewWillAppear 方法?
-
是的,我试过了。但它只显示黑屏。应用程序在那里冻结。
-
您是否将视频添加到 Xcode 目录或复制捆绑资源?
-
是的,它已添加到那里。我也检查过...
-
@stallone 是闪屏视频吗?问是因为在 MPMoviePlayerController 中显示闪屏视频对用户来说不是那么友好。您可以使用 AVPlayer 显示闪屏视频。
标签: ios objective-c xcode mpmovieplayercontroller