我创建了自己的从MPMoviePlayerViewController派生的MoviePlayerViewController,我使用标准的presentMoviePlayerViewController方法呈现它 - 一切正常。在电影播放器控制器的顶部,当用户单击某个按钮时(我暂停电影后),我会呈现另一个ShareThisMovie视图控制器。我使用presentViewController执行此操作。
我不知道为什么但是一旦新的VC出现,底层的MoviePlayerViewController立即触发MPMoviePlayerPlaybackDidFinishNotification,我通过解除整个VC层次结构来响应,因此用户没有机会与ShareThisMovie交互控制器。
即使我忽略了通知,仍然是电影播放器触发它的事实意味着一旦ShareThisMovie控制器关闭,电影就会从开始开始。这显然不是我想要的......
为什么MoviePlayerController会触发此事件?我如何确保它没有,或者我如何解决这个问题?我尝试在显示ShareThisVideo控制器之前存储最后一个播放位置,然后将其设置回来,但它仍然从头开始播放......
TNX
答案 0 :(得分:0)
这种情况正在发生,因为当您从MoviePlayerViewController移动到另一个视图控制器时,MPMoviePlayer会停止播放...所以您的MPMoviePlayerPlaybackDidFinishNotification委托正在调用。
当你在另一个ViewController上时,你无法继续播放MPMoviePlayer。
一个解决方案是提交ShareThisMovieviewcontroller,你可以简单地在同一个控制器的MPMoviePlayer上添加UIView进行共享。这将阻止MPMoviePlayer停止。
答案 1 :(得分:0)
不完全是答案而不是解决方法,但我最终改变了设计:而不是从MPMoviePlayerViewController派生,我从标准的UIViewController派生,并在其中嵌入了一个MPMoviePlayerController。出于某种原因,当我这样做时,当我在我的播放器视图控制器上呈现一些其他VC时,玩家没有提出didFinish事件......
现在猜测我的结论是不是从MPMoviePlayerViewController派生出一个VC ......