Swift AVAudioPlayer。准时停止

Swift AVAudioPlayer。准时停止,swift,avaudioplayer,Swift,Avaudioplayer,Swift中有一个playAtTime函数,允许您指定开始播放的任何时间。我需要找到一种方法来做相反的事情。是否有任何功能允许您指定您希望玩家停止的时间 您只需设置一个计时器,在x秒后启动,并添加一种方法停止音频,如下所示: var audioPlayerTimer = NSTimer() audioPlayer.play() audioPlayerTimer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector:

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秒

以下是我并入音频播放器类的代码:

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()
}
您可以传递变量,使时间间隔为不同的数字。只要把它当作双人的就行了