MPMoviePlayerController重新启动而不是恢复

时间:2013-03-21 03:36:46

标签: ios ipad video mpmovieplayercontroller

我想让MPMoviePlayerController达到编程的endPlaybackTime,然后重新分配初始,当前和结束时间并“恢复”播放

首先播放,比如说,从开始到4秒,停止/暂停,然后从4到8继续播放等等......

但在重新分配current,initial和endPlaybackTimes并运行[mplayer play]后,视频​​将从原始时间(从4s开始)重新开始并播放到原始结束时间,即使调试消息确认了新的时间之后第二次发挥

NSURL *fileURL = [NSURL fileURLWithPath:filepath];
_mplayer3 = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
_mplayer3.controlStyle = MPMovieControlStyleNone;
[_mplayer3.view setFrame: self.view.bounds];
[self.view insertSubview:_mplayer3.view belowSubview:_TopBrag];
_mplayer3.endPlaybackTime = 4.0;
[_mplayer3 setShouldAutoplay:NO];
[_mplayer3 prepareToPlay];
[_mplayer3 view].userInteractionEnabled=YES;
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(parallaxDownDidFinish)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:_mplayer3];
[_mplayer3 play];

在结束通知中,创建了一个看似正常工作的手势识别器。在手势识别器中:

_mplayer3.initialPlaybackTime=_mplayer3.endPlaybackTime;
_mplayer3.currentPlaybackTime=_mplayer3.endPlaybackTime;
_mplayer3.endPlaybackTime+=4.0;
if (_mplayer3.endPlaybackTime > _mplayer3.duration)
    _mplayer3.endPlaybackTime = _mplayer3.duration;
[_mplayer3 play]

并且视频播放时间为0到4而不是4到8,即使播放后的NSLogs显示时间是您想要的

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

如果未在新实例上使用,则

MPMoviePlayerController不会遵守initialPlaybackTime。您将需要释放并重新分配/分配播放器才能使其正常工作。您需要做的就是在玩家继续玩之后重复使用问题中显示的初始代码。


更新

由于您似乎热衷于保持播放器视图处于活动状态,并且您没有使用标准用户界面,我建议您改用AVPlayer。它更灵活,对你的工作似乎是正确的选择。

答案 1 :(得分:0)

我不确定这个问题是什么,因为它应该可以工作,我认为问题是你在IOS 6中,IOS 6不允许你做这么小的改动,但是如果在你的刷卡中你改变了初始游戏时间到9或更高它应该工作....

尝试然后让我知道;)