AVAudioPlayerNode 在停止和重新启动时跳过了很多声音。
创始人
2024-11-12 21:30:21
0

当AVAudioPlayerNode停止和重新启动时跳过声音的问题通常是由于调用了scheduleBuffer方法多次导致的。为了解决这个问题,我们可以使用以下方法:

  1. 定义一个布尔变量isPlaying来跟踪音频播放状态。
var isPlaying = false
  1. 在启动音频播放之前,检查isPlaying变量的值,如果为true则返回。
if isPlaying {
    return
}
  1. 在开始播放之前,先停止播放器。
playerNode.stop()
  1. 使用scheduleBuffer方法播放音频。
let audioFile = try! AVAudioFile(forReading: url)
let audioBuffer = AVAudioPCMBuffer(pcmFormat: audioFile.processingFormat, frameCapacity: AVAudioFrameCount(audioFile.length))
try! audioFile.read(into: audioBuffer)
playerNode.scheduleBuffer(audioBuffer, completionHandler: nil)
  1. 在播放音频后将isPlaying变量设置为true。
isPlaying = true
  1. 在停止音频播放时将isPlaying变量设置为false,并停止播放器。
isPlaying = false
playerNode.stop()

这样,当AVAudioPlayerNode重新启动时,之前的声音将会被清除,并且不会跳过声音。

相关内容

热门资讯

透视开挂"wepok... 透视开挂"wepoker透视版下载"本来是有辅助方法(哔哩哔哩);在进入wepoker透视版下载软件...
透视有挂"we-po... 透视有挂"we-poker辅助器"确实有辅助器(哔哩哔哩)1、任何we-poker辅助器透视是真的假...
透视了解"pokem... 透视了解"pokemomo辅助软件"总是是真的辅助挂(哔哩哔哩)1、pokemomo辅助软件有没有辅...
透视推荐"wepok... 透视推荐"wepoker辅助器安装包"其实有辅助教程(哔哩哔哩)所有人都在同一条线上,像星星一样排成...
透视揭露"wepok... 透视揭露"wepoker高级辅助"果然是真的辅助技巧(哔哩哔哩)wepoker高级辅助是不是有人用挂...
透视开挂"xpoke... 透视开挂"xpoker辅助工具"好像有辅助挂(哔哩哔哩)1、进入到xpoker辅助工具是否有挂之后,...
透视详细"德普之星有... 透视详细"德普之星有透视辅助吗"果然真的有辅助方法(哔哩哔哩)1、德普之星有透视辅助吗脚本辅助下载、...
透视关于"aapok... 透视关于"aapoker真的假的"竟然真的有辅助神器(哔哩哔哩)1、下载好aapoker真的假的脚本...
透视揭露"hh po... 透视揭露"hh poker透视器下载"果然存在有辅助方法(哔哩哔哩)1)hh poker透视器下载有...
透视教你"wepok... 透视教你"wepoker辅助器是真的吗"本来真的是有辅助方法(哔哩哔哩)进入游戏-大厅左侧-新手福利...