我正在尝试播放一段声音片段.我如何在特定时间停止AVAudioPlayer? 我有一个函数,当从滑块值调用时,会将播放时间设置为给定的位置. (songStart和SongEnd只是歌曲的一部分) 我可以建立什么
我有一个函数,当从滑块值调用时,会将播放时间设置为给定的位置. (songStart和SongEnd只是歌曲的一部分)
我可以建立什么功能来阻止某一点?
func setSongConstraints(songStart: Double, songEnd: Double){
audioPlayer.currentTime = audioPlayer.duration * songStart
}
我知道一个选项是设置一个等待计时器或什么,然后在这段时间后调用停止.
但是,我希望在歌曲开始后允许改变歌曲结束点的功能.等待计时器在这种情况下不起作用,因为它需要在启动后进行更改.
您应该只使用NSTimer并检查AVAudioPlayer对象的currentTime属性.例如
在这里,我在viewDidLoad中启动计时器,但实际上,当你开始播放音频时,你会想要这样做.
var timer:NSTimer!
override func viewDidLoad() {
super.viewDidLoad()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "checkTime", userInfo: nil, repeats: true)
}
然后创建计时器每秒运行的功能,以根据您自己的值检查音频播放器的当前时间,其中END_TIME可以更新或替换为您的songEnd逻辑.
var END_TIME = 10.0
func checkTime() {
if self.audioPlayer.currentTime >= END_TIME {
self.audioPlayer.stop()
timer.invalidate()
}
}
参考:AVAudioPlayer和NSTimer
