快速完成AVPlayer播放后再次播放音频

时间:2018-11-16 05:26:16

标签: swift

完成后如何再次播放相同的音频?现在,我将此代码与AVPlayer一起使用:

fileprivate func play () {
    guard let url = URL(string: record.recordUrl) else { return }
    let playItem = AVPlayerItem(url: url)
    player.replaceCurrentItem(with: playItem)
    NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: playItem)
    player.play()
}

@objc func playerDidFinishPlaying(note: NSNotification) {
    print("Player finished")
    currentTimeSlider.setValue(0, animated: true)
    currentTimeLabel.text = "00:00"
}

1 个答案:

答案 0 :(得分:4)

@objc func playerDidFinishPlaying(note: NSNotification) {
    print("Player finished")
    currentTimeSlider.setValue(0, animated: true)
    currentTimeLabel.text = "00:00"

    //Swift 4
    player.seek(to: .zero, toleranceBefore: .zero, toleranceAfter: .zero)

    //Swift 2 & 3 (I believe for 2 & 3)
    //player.seek(to: kCMTimeZero, toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)

    //Play
    player.play()
}

我从头开始添加了搜索(公差确保它精确地为零,并且在一定误差范围内不为零)。

还添加了完成后可以播放的功能。

相关问题