0
我試圖讓Avplayer簡歷從停止的地方,通過使型CMtime的全球價值和CURRENTTIME存儲然後用它來從恢復啓動停止的地方Avplayer總是從開始
我的代碼:
override func viewDidLoad() {
super.viewDidLoad()
url = URL(string: "https://s3.amazonaws.com/kargopolov/kukushka.mp3")!
let playerItem:AVPlayerItem = AVPlayerItem(url: url as URL)
player = AVPlayer(playerItem: playerItem)
let duration : CMTime = playerItem.asset.duration
let seconds : Float64 = CMTimeGetSeconds(duration)
playbackSlider!.maximumValue = Float(seconds)
playbackSlider?.addTarget(self, action: #selector(playbackSliderValueChanged(_:)), for: .valueChanged)
self.view.addSubview(playbackSlider!)
player!.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, 1), queue: DispatchQueue.main) { (CMTime) -> Void in
if player!.currentItem?.status == .readyToPlay {
let time : Float64 = CMTimeGetSeconds(player!.currentTime())
self.playbackSlider!.value = Float (time) }}
@IBAction func playbackSliderValueChanged(_ sender: UISlider) {
let seconds : Int64 = Int64(playbackSlider.value)
let targetTime:CMTime = CMTimeMake(seconds, 1)
player!.seek(to: targetTime)
if player!.rate == 0
{
player?.play()
}
}
當我嘗試使用seek(至:) 沒有任何改變,它也從頭開始!
我嘗試使用
if let currentTime = player?.currentTime() {
player?.seek(to: times2! )
}
改變CURRENTTIME我不知道爲什麼它總是從開始我用AVAudioPlayer 開始,它比AVplayer 容易得多,而是因爲我需要流音頻I將其更改爲AVplayer