我如何将这四行代码从 AVAudioPlayer 转换为 AVPlayer?
How would I convert these four lines of code from AVAudioPlayer to AVPlayer?
我需要将我的代码从 AVAudioPlayer
更改为 AVPlayer
,因为它支持倒带,而 AVAudioPlayer
不支持。我在使用这四行代码寻找正在使用滑块播放的音频时遇到了问题。这是我的代码:
func changeAudioTime() {
//musicPlayer is declared as AVAudioPlayer and I want to change it to AVPlayer and I named the variable player
musicPlayer.prepareToPlay()
musicPlayer.currentTime = NSTimeInterval(slider.value)
musicPlayer.numberOfLoops = -1
slider.value = Float(musicPlayer.currentTime)
}
要在这两种情况下设置时间,您可以使用:
self.player.seekToTime(CMTimeMake(Int64(slider.value),1))
slider.value = Float(CMTimeGetSeconds(self.player.currentTime()))
循环可以这样试,因为没有直接循环的方法,直到你想重复你可以设置flag/observer然后重复这首歌如果重复关闭你可以不执行observer/seek
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "playerItemDidReachEnd:",name: AVPlayerItemDidPlayToEndTimeNotification,
object: self.player.currentItem)
func playerItemDidReachEnd(notification: NSNotification) {
self.player.seekToTime(kCMTimeZero)
self.player.play()
}
我需要将我的代码从 AVAudioPlayer
更改为 AVPlayer
,因为它支持倒带,而 AVAudioPlayer
不支持。我在使用这四行代码寻找正在使用滑块播放的音频时遇到了问题。这是我的代码:
func changeAudioTime() {
//musicPlayer is declared as AVAudioPlayer and I want to change it to AVPlayer and I named the variable player
musicPlayer.prepareToPlay()
musicPlayer.currentTime = NSTimeInterval(slider.value)
musicPlayer.numberOfLoops = -1
slider.value = Float(musicPlayer.currentTime)
}
要在这两种情况下设置时间,您可以使用:
self.player.seekToTime(CMTimeMake(Int64(slider.value),1))
slider.value = Float(CMTimeGetSeconds(self.player.currentTime()))
循环可以这样试,因为没有直接循环的方法,直到你想重复你可以设置flag/observer然后重复这首歌如果重复关闭你可以不执行observer/seek
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "playerItemDidReachEnd:",name: AVPlayerItemDidPlayToEndTimeNotification,
object: self.player.currentItem)
func playerItemDidReachEnd(notification: NSNotification) {
self.player.seekToTime(kCMTimeZero)
self.player.play()
}