我想让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显示时间是您想要的
感谢任何帮助
答案 0 :(得分:1)
MPMoviePlayerController
不会遵守initialPlaybackTime
。您将需要释放并重新分配/分配播放器才能使其正常工作。您需要做的就是在玩家继续玩之后重复使用问题中显示的初始代码。
更新
由于您似乎热衷于保持播放器视图处于活动状态,并且您没有使用标准用户界面,我建议您改用AVPlayer
。它更灵活,对你的工作似乎是正确的选择。
答案 1 :(得分:0)
我不确定这个问题是什么,因为它应该可以工作,我认为问题是你在IOS 6中,IOS 6不允许你做这么小的改动,但是如果在你的刷卡中你改变了初始游戏时间到9或更高它应该工作....
尝试然后让我知道;)