AVAudioSequencer播放AVAudioUnitSampler会截断MIDI音符的尾端
创始人
2024-11-12 22:00:16
0

这个问题是由于默认的AVAudioEngine的渲染时间不足以将MIDI音符的尾端完整地播放。要解决这个问题,可以通过在渲染前增加几个断点来扩大渲染范围。这可以通过修改AVAudioEngine的connect方法来实现:

func connect(sourceNode: AVAudioNode, to destNode: AVAudioNode, format: AVAudioFormat? = nil, block: AVAudioNodeCompletionHandler? = nil) {
    let range = AVAudioTimeRange(start: AVAudioTime(sampleTime: 0, atRate: destNode.sampleRate), duration: AVAudioFrameCount(destNode.sampleRate * 3))
    engine.connect(sourceNode, to: destNode, format: format, block: block)
    engine.mainMixerNode.scheduleBuffer(nil, at: nil, options: AVAudioPlayerNodeBufferOptions(rawValue: 0), completionCallbackType: .dataRendered, completionHandler: nil, time: range.start, duration: range.duration)
}

在这个方法中,我们增加了一个范围,使得渲染时间扩大了3秒钟。这个范围可以被调整,根据你的实际需要来改变。

将所有的连接方法都替换为上面的connect方法就可以解决这个问题了。

相关内容

热门资讯

揭秘几款!九九山城辅助,德州局... 揭秘几款!九九山城辅助,德州局脚本,高科技教程(有挂助手);相信小伙伴都知道这个九九山城辅助上存在很...
总算明白!天天微友辅助器,德州... 总算明白!天天微友辅助器,德州真人透视脚本,必赢方法(有挂详情)是一款可以让一直输的玩家,快速成为一...
总算明白!边锋辅助器小程序微信... 总算明白!边锋辅助器小程序微信,拱趴大菠萝怎么开挂,wepoke教程(有人有挂);1、当边锋辅助器小...
发现玩家!扣点点脚本辅助器,h... 发现玩家!扣点点脚本辅助器,hhpoker的辅助是真的吗,2025教程(真的有挂);扣点点脚本辅助器...
实测揭晓!微信小程序多乐辅助器... 实测揭晓!微信小程序多乐辅助器,epoker免费透视脚本,第三方教程(有挂教学)是一款可以让一直输的...
一分钟了解!楚天游辅助,拱趴大... 一分钟了解!楚天游辅助,拱趴大菠萝十三水作弊,透明挂教程(真实有挂);楚天游辅助是一款益智类棋牌手游...
查到实测!创思维激k辅助神器,... 您好,创思维激k辅助神器这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家...
最新研发!大唐辅助软件,wep... 最新研发!大唐辅助软件,wepoker辅助器下载,科技教程(有挂秘笈);亲,有的,ai轻松简单,又可...
记者揭秘!宁夏欢乐划水辅助,约... 记者揭秘!宁夏欢乐划水辅助,约局吧游戏挂,必胜教程(确实有挂);宁夏欢乐划水辅助是一项宁夏欢乐划水辅...
2024教程!邯郸胡乐挂辅助,... 您好:邯郸胡乐挂辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特...