使用swift恢复AVAudioPlayer中的声音

问题描述:

我试图播放可以暂停,恢复或停止的声音片段。我的暂停按钮起作用,并且此按钮的操作功能如下所示。但是我无法让我的简历功能正常工作。当我按下继续按钮时,不播放音频。我已经在线阅读,我可以找到的唯一技巧是使用prepareToPlay()函数并将shortStartTimeDelay设置为大于0.0的值。我已经试过这两个都无济于事。使用swift恢复AVAudioPlayer中的声音

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) 
} 

如何恢复音频的任何提示将非常感激。 谢谢你的时间。

+0

检查这个环节,可以帮助你http://www.ioscreator.com/tutorials/play-music -avaudioplayer-ios8-swift – UlyssesR

你不应该使用playAtTime()恢复AVAudioPlayer,如documentation状态:

播放声音异步,开始在 音频输出设备的时间轴上的指定点。

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

而且,即使您使用它,也应该结合使用deviceCurrentTime加上延迟时间以秒为单位。总之,这并不意味着用于恢复已暂停的播放器。相反,只需使用play()即可恢复播放。

+0

感谢您花时间回答。如果我使用audioPlayer.play(),我仍然没有得到正确的行为。 现在如果我按暂停音频停止播放扬声器,然后当我按下恢复时,它不会继续播放,当我按暂停时。它通过mp3继续播放 – JungleBook

要简单地暂停和在音频文件中的相同位置重新启动,以下工作:

@IBAction func playAction(sender: AnyObject) { 

    player.play() 
} 


@IBAction func pauseAction(sender: AnyObject) { 

    player.pause() 
}