【问题标题】:Playing subsequent movies in one MPMoviePlayerViewController在一个 MPMoviePlayerViewController 中播放后续电影
【发布时间】:2012-05-14 23:32:41
【问题描述】:

我在使用 MPMoviePlayViewController 时遇到了问题。 我使控制器贪得无厌,分配网址并使用以下方式向播放器显示:

[self presentMoviePlayerViewControllerAnimated:[appDelegate movieController]];

然后当电影结束时,我将其关闭:

[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];    
[self dismissMoviePlayerViewControllerAnimated];  

电影播放器​​在我的 AppDelegate 中分配。 MPMoviePlayerPlaybackDidFinishNotification 上还有其他一些侦听器。这是针对可能存在的情况,例如只有音频,它会在表格单元格中显示播放/暂停按钮和计数器。

问题是,当我在同一个 MPMovieViewController 中加载第二部电影时,它看起来很好,但控件无法正常工作。只要它们可见,它们就可以工作,但是一旦它们消失,就不可能将它们取回并因此关闭电影播放器​​。有时关闭和打开应用程序可以工作,但有时不能,我需要'杀死'应用程序以便能够重新开始。

有没有办法在 MoviePlayer 中播放后续视频而控件仍然有效? 有什么建议可以“重置”播放器,以防止其他侦听器在侦听操作时给出 DEALLOC?

【问题讨论】:

    标签: iphone cocoa-touch mpmovieplayercontroller mpmovieplayer


    【解决方案1】:

    你不需要解散播放器,你只需要设置新的网址......或者我可能误解了你的问题......

    尝试将此添加到您的设置电影播放器​​控制器

    moviePlayerController.view.userInteractionEnabled = YES;
    

    【讨论】:

    • 没错,但似乎存在一个问题,即视图没有注册与播放器的任何交互以显示/隐藏控件。因此,一旦控件被隐藏,它们将不会在点击屏幕时返回,并且不可能返回到先前的视图。我现在正在通过在视频停止播放时设置一个标志来解决此问题,以便在下一个请求时释放播放器并重新实例化它。不是最优雅的方式,但它可以解决问题。
    • 所以您的控件一旦关闭就不会显示?你的控件是定制的吗?
    • 是的。第一次播放它们很好,但是在点击“完成”或电影完成并加载新电影后,一旦它们消失(4 秒后?),就没有办法让它们回来了。没有自定义,只是一个 MPMoviePlayerViewController。
    • 抱歉 Calleth,我很喜欢它,因为它发布并重新创建了播放器。不是最优雅的,但它有效并允许我提交更新。
    猜你喜欢
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多