gpt4 book ai didi

swift - AudioPlayer (Swift) - 播放声音两次 - 有间隙

转载 作者:行者123 更新时间:2023-11-28 05:46:56 30 4
gpt4 key购买 nike

我正在使用以下代码将声音文件播放两次。第二个声音在第一个声音之后立即播放

是否可以在它们之间留出时间间隔(1 秒)?我试图通过阅读 Apple Docs 找到解决方案

var letterSound: AVAudioPlayer!

...


@IBAction func speakLetter(sender: AnyObject) {

let soundFile: String = "SoundFile" + String(letterNumber)

let path = Bundle.main.path(forResource: soundFile, ofType:"mp3")!
let url = URL(fileURLWithPath: path)

do {
let sound = try AVAudioPlayer(contentsOf: url)
letterSound = sound
letterSound.numberOfLoops = 1
letterSound.play()

} catch {
// couldn't load file :(
}

}

最佳答案

一种选择是在音频文件末尾添加一些“空白”或静音。

enter image description here

如果您没有音频编辑器,我建议您使用 Audacity ,它是免费的,how to add silence. 上有很多教程


如果您想要更多基于代码的选项,您可以考虑使用 AVAudioPlayerDelegate didFinishPlaying方法来检测第一次播放的结束,然后使用 play(atTime:) 从现在开始 1 秒后触发下一个循环。

func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
player.play(atTime: player.deviceCurrentTime + 1.0)
}

此代码未经测试,我认为它可能会创建一个无限循环,因此您可能需要一些额外的逻辑来确保它只循环一次

关于swift - AudioPlayer (Swift) - 播放声音两次 - 有间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54294544/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com