【发布时间】:2017-06-02 09:14:28
【问题描述】:
我使用 AVPlayer 播放音频文件。我有问题。 UISlider 无法正常工作,滑块应作为进度视图移动,当您单击停止时,音频会再次播放
@IBAction func play(_ sender: Any) {
let url = URL(string: self.urlAudio[0])
let playerItem = AVPlayerItem(url: url!)
player = AVPlayer(playerItem:playerItem)
player.rate = 1.0;
player.play()
let duration : CMTime = playerItem.asset.duration
let seconds : Float64 = CMTimeGetSeconds(duration)
playbackSlider.maximumValue = Float(seconds)
playbackSlider.isContinuous = true
playbackSlider.tintColor = UIColor.green
playbackSlider.addTarget(self, action: #selector(ViewControllerAudioDetail.playbackSliderValueChanged(_:)), for: .valueChanged)
if soundChange == true{
playChange.setImage(UIImage(named:"Pause.png"), for: UIControlState.normal)
soundChange = false
player.play()
} else {
playChange.setImage(UIImage(named:"Play.png"), for: UIControlState.normal)
soundChange = true
player.pause()
}
}
func playbackSliderValueChanged(_ playbackSlider:UISlider){
let seconds : Int64 = Int64(playbackSlider.value)
let targetTime:CMTime = CMTimeMake(seconds, 1)
player.seek(to: targetTime)
}
【问题讨论】:
-
因为你必须在停止时获得时间,然后点击播放后从那个时间开始
标签: ios swift audio avplayer uislider