在应用程序启动时启动视频失败 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":
编辑方案 -> 诊断 -> 启用僵尸对象
并让我知道日志。
我想在用户每次在 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": 编辑方案 -> 诊断 -> 启用僵尸对象
并让我知道日志。