0
您好,我正在使用AVPlayer
进行视频播放。这就是我所做的。AVPlayer的播放时间目前的播放时间
avPlayer = AVPlayer(url: videoURL! as URL)
playerLayer = AVPlayerLayer(player: avPlayer)
playerLayer.videoGravity=AVLayerVideoGravityResizeAspectFill
avPlayer.play()
现在我想添加一个UISlider
视频播放时移动。所以我这样做了。
let minimumValue:Float=0.00
sliderBar.minimumValue=minimumValue
playerLayer.frame = self.viewPlayer.bounds
self.viewPlayer.layer.addSublayer(playerLayer)
let duration : CMTime = avPlayer.avPlayer.currentItem!.asset.duration
let seconds : Float64 = CMTimeGetSeconds(duration)
sliderBar.maximumValue=Float(seconds)
但是,当我打印duration
这是我的输出
(lldb) po duration
▿ CMTime
- value : 0
- timescale : 0
▿ flags : CMTimeFlags
- rawValue : 17
- epoch : 0
我怎样才能得到这个视频流的持续时间。 请帮帮我。 谢谢
我想你可以从这里得到答案: http://stackoverflow.com/questions/40781738/how-to-detect-avplayer-actually-started-to-play-in-swift#comment68786619_40781738 – nynohu
不,我不能从中得到答案。这也使用相同的方式 – user1960169
我的意思是在您需要获得AVPlayer状态readyToPlay的答案,如果您收到此状态,您可以正确地获得持续时间。 – nynohu