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重新启动时,之前的声音将会被清除,并且不会跳过声音。

相关内容

热门资讯

无独有偶!hhpoker外开挂... 无独有偶!hhpoker外开挂靠谱吗(透视)微信小程序微乐破解器2024(都是真的是有辅助工具)-哔...
据目击者称!德普之星透视软件免... 据目击者称!德普之星透视软件免费入口官网(透视)微信微乐游戏辅助器(竟然是有辅助器)-哔哩哔哩1、德...
第三方辅助挂!德普之星透视辅助... 第三方辅助挂!德普之星透视辅助软件下载(透视)微信小程序四川微乐脚本(其实是真的辅助app)-哔哩哔...
随着!we-poker辅助器(... 随着!we-poker辅助器(透视)微乐自建房免费辅助入口在哪里(果然是真的辅助方法)-哔哩哔哩1、...
代打辅助挂!wepoker有辅... 代打辅助挂!wepoker有辅助插件吗(透视)微乐小程序游戏辅助器脚本官网(好像有辅助神器)-哔哩哔...
近日!wpk有那种辅助吗(透视... 近日!wpk有那种辅助吗(透视)微乐a3纸牌有脚本(其实真的是有辅助脚本)-哔哩哔哩1.wpk有那种...
今年以来!黑侠破解wepoke... 今年以来!黑侠破解wepoker(透视)微乐麻将脚本透视(一直是真的辅助方法)-哔哩哔哩1、黑侠破解...
长期以来!wepoker有辅助... 长期以来!wepoker有辅助插件吗(透视)微乐广西小程序开发(一贯是有辅助插件)-哔哩哔哩亲,关键...
透视软件!wepoker有辅助... 透视软件!wepoker有辅助工具吗(透视)微信小程序微乐房间透视(都是存在有辅助挂)-哔哩哔哩1、...
透视实锤!cloudpoker... 透视实锤!cloudpoker怎么开挂(透视)手机微乐小程序破解器(一贯真的是有辅助攻略)-哔哩哔哩...