Swift中有一个playAtTime函数,允许您指定想要开始播放的任何时间。我需要找到一种方法来做相反的事情。是否有任何功能允许您指定希望玩家停止的时间?
答案 0 :(得分:4)
您只需设置一个计时器,在x秒后触发,并添加一个停止音频的方法,如下所示:
var audioPlayerTimer = NSTimer()
audioPlayer.play()
audioPlayerTimer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: "stopAfter3seconds", userInfo: nil, repeats: false)
func stopAfter3seconds(){
audioPlayer.stop()
}
答案 1 :(得分:0)
Leo 上面的代码现在对于 Swift 5 已经过时了。我使用以下代码和 AVAudioPlayer 在预定时间停止音频。你可能有兴趣知道定时器间隔也是毫秒的,分辨率大概是0.1到0.05秒。
这是我在音频播放器类中加入的代码:
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 发送即可。