快速恢复 AVAudioPlayer 中的声音

Jun*_*ook 5 resume avaudioplayer ios swift

我正在尝试播放可以暂停、恢复或停止的声音片段。我的暂停按钮起作用了,该按钮的动作功能如下所示。但是我无法让我的简历功能发挥作用。当我按下恢复按钮时,没有播放音频。我已经在网上阅读,我能找到的唯一提示是使用 prepareToPlay() 函数并将 shortStartTimeDelay 设置为大于 0.0 的值。我试过这两种方法都无济于事。

timeAtPause 是 NSTimeInterval 类型的全局变量

暂停按钮的动作函数如下:

@IBAction func pauseAllAudio(sender: UIButton) { timeAtPause = audioPlayer.currentTime audioPlayer.pause() }

恢复按钮的动作函数如下:

@IBAction func resumeAllAudio(sender: UIButton) {
    let shortStartDelay = 0.01
    audioPlayer.prepareToPlay()
    audioPlayer.playAtTime(timeAtPause + shortStartDelay)
}
Run Code Online (Sandbox Code Playgroud)

任何有关如何恢复音频的提示将不胜感激。感谢您的时间。

Fah*_*mov 5

您不应该使用playAtTime()来恢复AVAudioPlayer,如文档所述:

从音频输出设备时间线中的指定点开始异步播放声音。

使用此方法可以精确同步两个或多个 AVAudioPlayer 对象的播放。

而且,即使你使用它,它也应该与deviceCurrentTime加上以秒为单位的时间结合使用才能有延迟。一句话,它并不意味着用于恢复暂停的播放器。相反,仅用于play()恢复播放。