Swift函数playAtTime()不添加延迟
我正在试着玩两个有声播放器,一个接一个地玩完。我使用Swift函数playAtTime()创建第二个延迟,如下所示:Swift函数playAtTime()不添加延迟,swift,audio,avaudioplayer,Swift,Audio,Avaudioplayer,我正在试着玩两个有声播放器,一个接一个地玩完。我使用Swift函数playAtTime()创建第二个延迟,如下所示: var audioPlayer1 = AVAudioPlayer() var audioPlayer2 = AVAudioPlayer() let soundPathA = NSBundle.mainBundle().pathForResource("A", ofType: "m4a") let soundURLA = NSURL.fileURLWithPath(soundPa
var audioPlayer1 = AVAudioPlayer()
var audioPlayer2 = AVAudioPlayer()
let soundPathA = NSBundle.mainBundle().pathForResource("A", ofType: "m4a")
let soundURLA = NSURL.fileURLWithPath(soundPathA!)
let soundPathB = NSBundle.mainBundle().pathForResource("B", ofType: "m4a")
let soundURLB = NSURL.fileURLWithPath(soundPathB!)
var noteA = Sound()
noteA.URL = soundURLA
var noteB = Sound()
noteB.URL = soundURLB
self.audioPlayer1 = try!AVAudioPlayer(contentsOfURL: soundURLA)
self.audioPlayer2 = try!AVAudioPlayer(contentsOfURL: soundURLB)
let duration : NSTimeInterval = audioPlayer1.duration
self.audioPlayer1.play()
self.audioPlayer2.playAtTime(duration)
但是,没有延迟发生。我的问题是什么?播放时间功能不会在给定时间开始播放。相反,它会立即播放,从要播放的声音中的给定时间开始。因此,如果你给它0.6,它将立即开始播放,但声音将从0.6秒开始。请参阅文档 如果您想在播放前等待,您可以使用
dispatch\u after
:
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.6 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
self.audioPlayer2.play()
}
playAtTime
功能不会在给定时间开始播放。相反,它会立即播放,从要播放的声音中的给定时间开始。因此,如果你给它0.6,它将立即开始播放,但声音将从0.6秒开始。请参阅文档
如果您想在播放前等待,您可以使用dispatch\u after
:
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.6 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
self.audioPlayer2.play()
}
我还没有试过Michael的答案,但是对于那些想知道如何使用
playAtTime
的人来说,看看这个:看看playEcho函数
对我来说,代码如下所示:
var playTime1 : NSTimeInterval = audioPlayer2.deviceCurrentTime + (duration1*Double(value))
self.audioPlayer1.stop()
self.audioPlayer1.currentTime = 0
self.audioPlayer1.play()
我还没有试过Michael的答案,但是对于那些想知道如何使用
playAtTime
的人来说,看看这个:看看playEcho函数
对我来说,代码如下所示:
var playTime1 : NSTimeInterval = audioPlayer2.deviceCurrentTime + (duration1*Double(value))
self.audioPlayer1.stop()
self.audioPlayer1.currentTime = 0
self.audioPlayer1.play()
持续时间返回的值是多少?只会延迟大约0.6秒,这是您想要的延迟量吗?是的,这应该是正确的延迟,但是现在,第二个声音根本没有播放。你能发布与两个音频播放器相关的其余代码吗?请问
duration
返回的值是多少?它只会延迟大约0.6秒,这是你想要的延迟量吗?是的,这应该是正确的延迟,但现在,第二个声音根本没有播放。你能发布关于这两个音频播放器的其余代码吗!工作得很好!谢谢工作得很好!