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 发送即可。