【发布时间】:2026-01-04 02:05:03
【问题描述】:
我需要获取有关使用 MPMoviePlayer 播放视频的总时间的信息。如何处理用户观看 3 分钟视频最多 2 分钟并向后移动到 1.30 并关闭视频的情况。要求是知道分数用户准确观看的视频。
【问题讨论】:
标签: ios objective-c video mpmovieplayercontroller
我需要获取有关使用 MPMoviePlayer 播放视频的总时间的信息。如何处理用户观看 3 分钟视频最多 2 分钟并向后移动到 1.30 并关闭视频的情况。要求是知道分数用户准确观看的视频。
【问题讨论】:
标签: ios objective-c video mpmovieplayercontroller
来自MPMoviePlayerController 上的 Apple 文档:
电影播放器通知
电影播放器会生成通知,让您的应用了解电影播放的状态。除了在播放结束时收到通知外,您的应用还可以在以下情况下收到通知:
- 电影播放器开始播放、暂停或开始向前或向后搜索时
使用这些通知,您可以设置自己的计时器来了解视频已播放的总时间。具体来说,您可能想要MPMoviePlayerPlaybackStateDidChangeNotification。
知道观看视频的总百分比可能有点棘手,但我认为仍然可以。您需要注册MPMediaPlayback 协议并将其与上述PlaybackStateDidChangeNotification 结合使用。
我的一个想法(尽管可能不是最好或最有效的方法)是创建一个 BOOL 值数组,视频的每一秒为 1。当视频播放时,抓住播放器上的currentPlaybackTime 并在播放时标记每一秒。如果视频状态发生变化(暂停、快进等),请停止标记它们直到恢复,然后从基于新 currentPlaybackTime 的新索引开始并继续标记。完成后,计算已标记的索引的百分比。
MPMoviePlayerController
MPMediaPlayback Protocol
让我知道这是否适合你!
【讨论】: