MPMoviePlayerController无法打开

时间:2013-09-18 09:42:48

标签: ios objective-c ipad mpmovieplayercontroller uisplitviewcontroller

我正在制作一个带有splitviewcontroller的应用,并且想要播放视频。

我在拆分视图中有2个控制器。 左(主)是VideoMenuTableViewController 右(详细)是VideoViewController

首先,我通过将我的代码放入viewdidload的{​​{1}}来测试视频的效果。

像这样:

VideoViewController

这样可以播放视频。

现在,我尝试通过触摸- (void)viewDidLoad { [super viewDidLoad]; self.URLForVideoFile = @"http://api.smit-it.info/TEST/VIDEO/two.mov"; NSURL *fileURL = [NSURL URLWithString:self.URLForVideoFile]; MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL]; [self presentMoviePlayerViewControllerAnimated:mp]; } 中的标题来打开视频。

VideoMenuTableViewController

其中-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *SelectedUrl; SelectedUrl = [[[self.dataSource.videos valueForKey:@"URL"] objectAtIndex:0] objectAtIndex:indexPath.row]; NSLog(@"URL pressed %@",SelectedUrl); VideosViewController *vvc = [[VideosViewController alloc] init]; vvc.URLForVideoFile = SelectedUrl; [vvc PlayMovieFromSelectedUrl]; } PlayMovieFromSelectedUrl中的代码相同 该应用程序崩溃并给出以下错误。

viewdidload

但是我不明白这个问题,所以我不知道如何解决它。 请帮忙。


更新

通过@PiotrK添加3行代码

Warning: Attempt to present <MPMoviePlayerViewController: 0xb25c440>
on <VideosViewController: 0xb2565d0> whose view is not in the window
hierarchy!

播放视频,但视频完成或解除后,分割视图会停止响应所有内容。

2 个答案:

答案 0 :(得分:1)

嗯,自从我使用iOS SDK以来已经有一段时间了,但我会尽力帮忙。 错误说明:您的VideosViewController不在窗口层次结构中。这意味着窗口管理器不知道vvc VideosViewController的存在。您必须告诉应用程序您确实要显示vvc。试试这个:

...

VideosViewController *vvc = [[VideosViewController alloc] init];
vvc.URLForVideoFile = SelectedUrl;

UIWindow* keyWindow= [[UIApplication sharedApplication] keyWindow];
[keyWindow addSubview: vvc.view];
[self presentViewController:vvc animated:NO completion:nil];

[vvc PlayMovieFromSelectedUrl];

....

答案 1 :(得分:0)

在.m文件中分配MPMoviePlayerViewController * mp。或.m文件中的接口