当前位置:   article > 正文

AVPlayer 无间隔循环播放_免播放器av

免播放器av

AVPlayer 可以实现音频或者视频文件的在线播放和本地播放。最近做了一个单曲循环播放的功能。一开始选择了下面这个方法:

- (void)replaceCurrentItemWithPlayerItem:(nullable AVPlayerItem *)item;
  • 1

但尝试后发现两首音乐无法完美衔接,中间会有一个短暂的停留,这个不太符合我们的需求。尝试在播放完后,重新创建播放器,继续播放这首音乐。但还是会有停留。

随后采用了一个折中的方案,在音乐播放即将完成的时候,重新创建一个新的播放器,开始播放。第一个播放器播放完成后就销毁掉。当第二个播放器即将播放完成的时候,在初始化第一个播放器,记录开始播放,以此循环。这样,用一段重合的音乐代替了一段暂停。

我们需要监听音乐播放:

id _timeObserve;
id _timeLoopObserve;
  • 1
  • 2

监听第一个播放器的播放情况:

@weakify(self)
        _timeObserve = [self.musicPlayer addPeriodicTimeObserverForInterval:CMTimeMake(1.0, 1.0) queue:dispatch_get_main_queue() usingBlock:^(CMTime time) {
            @strongify(self)
            float current = CMTimeGetSeconds(time);
            float total = CMTimeGetSec
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/138786
推荐阅读
相关标签
  

闽ICP备14008679号