AVAudioPlayer。及时停止
AVAudioPlayer. Stop at time
Swift中有一个playAtTime函数,可以让你指定任何时间开始播放。我需要找到一种方法来做相反的事情。是否有任何功能可以让您指定希望播放器停止的时间?
您只需设置一个定时器在 x 秒后触发,并添加一个方法来停止您的音频,如下所示:
var audioPlayerTimer = NSTimer()
audioPlayer.play()
audioPlayerTimer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: "stopAfter3seconds", userInfo: nil, repeats: false)
func stopAfter3seconds(){
audioPlayer.stop()
}
上面 Leo 的代码现在已过时 Swift 5. 我将以下代码与 AVAudioPlayer 一起使用以在预定时间停止音频。您可能有兴趣知道定时器间隔也以毫秒为单位,分辨率约为 0.1 到 0.05 秒。
这是我合并到我的音频播放器中的代码class:
var audioPlayerTimer = Timer()
然后在我要调用的函数中设置播放间隔:
audioPlayerTimer = Timer.scheduledTimer(timeInterval: 3.2, target: self, selector: #selector(self.pauseAudio), userInfo: nil, repeats: false)
您会注意到我有一个名为 pauseAudio 的单独函数。您需要在该函数前面加上@objc,以便它在上面的代码中识别它:
@objc func pauseAudio() {
guard let audioPlayer = audioPlayer else { return }
audioPlayer.pause()
}
您可以传递变量以使 timeInterval 成为不同的数字。只需将其作为 Double 发送即可。
Swift中有一个playAtTime函数,可以让你指定任何时间开始播放。我需要找到一种方法来做相反的事情。是否有任何功能可以让您指定希望播放器停止的时间?
您只需设置一个定时器在 x 秒后触发,并添加一个方法来停止您的音频,如下所示:
var audioPlayerTimer = NSTimer()
audioPlayer.play()
audioPlayerTimer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: "stopAfter3seconds", userInfo: nil, repeats: false)
func stopAfter3seconds(){
audioPlayer.stop()
}
上面 Leo 的代码现在已过时 Swift 5. 我将以下代码与 AVAudioPlayer 一起使用以在预定时间停止音频。您可能有兴趣知道定时器间隔也以毫秒为单位,分辨率约为 0.1 到 0.05 秒。
这是我合并到我的音频播放器中的代码class:
var audioPlayerTimer = Timer()
然后在我要调用的函数中设置播放间隔:
audioPlayerTimer = Timer.scheduledTimer(timeInterval: 3.2, target: self, selector: #selector(self.pauseAudio), userInfo: nil, repeats: false)
您会注意到我有一个名为 pauseAudio 的单独函数。您需要在该函数前面加上@objc,以便它在上面的代码中识别它:
@objc func pauseAudio() {
guard let audioPlayer = audioPlayer else { return }
audioPlayer.pause()
}
您可以传递变量以使 timeInterval 成为不同的数字。只需将其作为 Double 发送即可。