Swift 在AVAudioPlayer中播放音调时,如何在循环之间添加延迟?
我已经创建了一个示例函数,它将使用无限循环立即播放短时音调。代码如下:Swift 在AVAudioPlayer中播放音调时,如何在循环之间添加延迟?,swift,avaudioplayer,Swift,Avaudioplayer,我已经创建了一个示例函数,它将使用无限循环立即播放短时音调。代码如下: let audioPlayer = try AVAudioPlayer(contentsOf: url) audioPlayer.numberOfLoops = -1 audioPlayer.play() 如何在播放器再次播放音调之前创建5秒延迟?有什么方法可以做到这一点吗?不幸的是,没有简单的方法可以做到这一点。您应该使用AVAudioPlayerDelegate。请在下面找到一些示例: class ViewContro
let audioPlayer = try AVAudioPlayer(contentsOf: url)
audioPlayer.numberOfLoops = -1
audioPlayer.play()
如何在播放器再次播放音调之前创建5秒延迟?有什么方法可以做到这一点吗?不幸的是,没有简单的方法可以做到这一点。您应该使用AVAudioPlayerDelegate。请在下面找到一些示例:
class ViewController: UIViewController, AVAudioPlayerDelegate
{
private var player: AVAudioPlayer!
@objc private func startPlaying()
{
self.player = try? AVAudioPlayer(contentsOf: url)
self.player.delegate = self
self.player.play()
}
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool)
{
self.perform(#selector(startPlaying), with: nil, afterDelay: 5)
}
}
当您想要停止音频的继续时,不要忘记停止选择器:
NSObject.cancelPreviousPerformRequests(withTarget: self)
谢谢,这对我帮助很大!