MPMoviePlayerController 播放记忆功能(setCurrentPlaybackTime)之前方案可行方案

最近项目反馈了一个问题,视频播放器播放记忆功能在有些情况下会失效,不能从之前的观看点继续播放,当时我给出的反馈是有时候如果网速不好缓冲不到记录点的,但是后来测试了下优酷等软件发现人家网速不好也能跳到对应的点,这!(不能老是拿网速安慰自己啊?) 既然人家能实现就说明是自己的问题了于是乎就开始了探索。

之前方案

-(void)play{
  if (self.oldTime != 0 ) {
     [self setCurrentPlaybackTime:self.oldTime];
   }
  [super play];
 }

之前处理的就是在点击开始播放的时候判断有没有记忆点,如果有就跳转到记忆点,然后在开始播放,但是问题就是当网速不是很好的情况下 setCurrentPlaybackTime: 这个有可能会跳转不到记忆点或者跳转需要一段时间的缓冲,在setCurrentPlaybackTime: 的动作还没有成功之后就 play ,就会出现播放是从0开始的,不能跳转到记忆点开始播放。当时想的是 setCurrentPlaybackTime: 怎么能找到这个方法的成功回调,在成功回调里在写开始播放,后来发现没有,又尝试了在播放器初始化完成之后(MPMoviePlayerReadyForDisplayDidChangeNotification)就执行setCurrentPlaybackTime:动作,后来发现也不行也会出现跳不到的情况

可行方案

虽然 在 MPMoviePlayerReadyForDisplayDidChangeNotification 里面写不行,但是却给了一种方案,就是在 MPMoviePlayerController 里这些通知回调里面处理也许可行,对相信你也猜到了 onMPMoviePlayerPlaybackStateDidChangeNotification 播放器状态发生改变的时候

 - (void)onMPMoviePlayerPlaybackStateDidChangeNotification
 {
if (self.playbackState == MPMoviePlaybackStatePlaying) {
       [self startDurationTimer];
    if (_oldTime > 0) {
        [super setCurrentPlaybackTime:_oldTime];
        _oldTime = 0;
    }
} else {
    [self stopDurationTimer];
   }
}

测试发现这样做是可行的,希望可以帮到有同样问题的你。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

腾讯TMQ在线沙龙回顾|测试过程管理

测试过程管理 活动时间:2017年10月26日 qq视频分享 活动介绍:TMQ在线沙龙第三十二期分享 本次分享的主题是:测试过程管理 共有83位测试小伙伴报名参...

2605
来自专栏程序你好

软件架构30条原则

原则 1: KISS (Keep it simple, stupid) “指设计时要坚持简约原则,避免不必要的复杂化。” 其思想是使用最简单的解决方案来完成这项...

1102
来自专栏后端技术探索

专访吕毅:链家网技术架构的演进之路

原文:http://www.infoq.com/cn/news/2016/07/lianjia-architect-plantform

1341
来自专栏美图数据技术团队

日活跃数千万,10亿级APP大数据统计分析平台的架构演进

美图拥有十亿级用户,每天有数千万用户在使用美图的各个产品,从而积累了大量的用户数据。

1742
来自专栏顶级程序员

支付宝Copy 微信代码被扒

支付宝小程序团队在知乎上发布了《给微信小程序工程师的致歉信》,在该信中,支付宝对于自己的直接 copy 了微信的示例行为表示道歉,表示已经立即修改。 ? ? ...

3777
来自专栏TEG云端专业号的专栏

海量存储第二弹 - 立体化监控

架平主要服务了公司内部的胖子业务,主要提供了其中的海量存储、海量CDN相关的服务,这些服务最终都体现在业务多、机器数量多、区域及运营商分布广泛(国内海外都有)、...

3893
来自专栏纯洁的微笑

从既有系统到微服务架构

微服务近年来可谓炙手可热,合理的使用微服务架构可以解耦系统、提供更好的软件伸缩性以及提高组织的敏捷性。然而现实中较少有项目一开始就会选择使用微服务架构,绝大多数...

923
来自专栏腾讯移动品质中心TMQ的专栏

腾讯TMQ在线沙龙回顾|后台测试案例分享

后台测试案例分享 活动时间:2017年9月28日 qq视频分享 活动介绍:TMQ在线沙龙第三十一期分享 本次分享的主题是:后台测试案例分享 共有66位测试小伙伴...

2356
来自专栏DannyHoo的专栏

iOS提交审核:关于您的 App 正在使用广告标识符 (IDFA)的问题

转载文章地址:http://blog.csdn.net/napianlvye1992/article/details/50496846

3182
来自专栏后端技术探索

从既有系统到微服务架构

微服务近年来可谓炙手可热,合理的使用微服务架构可以解耦系统、提供更好的软件伸缩性以及提高组织的敏捷性。然而现实中较少有项目一开始就会选择使用微服务架构,绝大多数...

1252

扫码关注云+社区

领取腾讯云代金券