0

我已经能够全屏播放视频,但是当我尝试在一个窗口中(在 iPad 上)播放它时,视频控件只会显示它一直在加载。

我想要做的是在调用 viewDidLoad 后立即自动播放和循环播放视频。

到目前为止,这是我的代码..

NSString *url = [[NSBundle mainBundle]
                 pathForResource:@"Test"
                 ofType:@"mp4"];

MPMoviePlayerViewController *player =
[[MPMoviePlayerViewController alloc]
 initWithContentURL:[NSURL fileURLWithPath:url]];

[[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(movieFinishedCallback:)
 name:MPMoviePlayerPlaybackDidFinishNotification
 object:player];

player.view.frame = CGRectMake(500, 400, 200, 200);
[self.view addSubview:player.view];

//---play movie---

[player.moviePlayer play];
player = nil;

任何人都可以提供解决方案吗?

4

3 回答 3

0

如果您将 player.play 语句放入 viewWillAppear,我发现这是可行的。

于 2012-10-09T21:32:17.587 回答
0

不确定您是否仍在寻找解决方案,但这对我有用:

创建一个UIView用作视频容器的容器,并为其提供您想要的视频大小。即使您将设置视图的框架,似乎您仍然需要设置movieplayer' 框架。

然后你只需要在你的播放器上添加一些额外的修饰符。

UIView *movieView = [[UIView alloc] initWithFrame:CGRectMake(500, 400, 200, 200)];

player.view.frame = CGRectMake(0, 0, 253, 175);
player.moviePlayer.shouldAutoplay = YES;
player.moviePlayer.controlStyle = MPMovieControlStyleEmbedded;

[self.view addSubview:movieView];

[movieView addSubview:mpviewController.view];

如果不设置控件,MPMovieControlStyleEmbedded控件将显示巨大。比 200 x 200 的实际视频大。MPMovieControlStyleHidden也可以。

于 2013-04-15T17:54:46.993 回答
0

我制作了一个 UIView 子类,它正是这样做的。在这里查看:http: //github.com/liaujianjie/VideoLoopView

代码:

self.videoView.videoUrl = [[NSBundle mainBundle] URLForResource:@"samplevideo.mov" withExtension:nil];
于 2016-02-14T17:54:58.143 回答