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方法就可以解决这个问题了。

相关内容

热门资讯

普及透视!红龙poker辅助平... 普及透视!红龙poker辅助平台!真是真的是有辅助方法(有挂头条)-哔哩哔哩1)红龙poker辅助平...
总结透视!wepoker辅助透... 总结透视!wepoker辅助透视,hhpoker为什么一直输,窍门教程(有挂方略)-哔哩哔哩1、游戏...
解迷透视!hhpoker有没有... 解迷透视!hhpoker有没有作必弊挂,wepoker公共底牌,教程书教程(有挂功能)-哔哩哔哩1、...
解谜透视!xpoker辅助控制... 解谜透视!xpoker辅助控制!原来存在有辅助攻略(今日头条)-哔哩哔哩1、完成xpoker辅助控制...
科普透视!wepoker有没有... 科普透视!wepoker有没有插件,wepoker科技辅助器,经验教程(有挂秘籍)-哔哩哔哩1、任何...
解迷透视!poker worl... 解迷透视!poker world辅助器!果然真的有辅助攻略(有挂存在)-哔哩哔哩1)poker wo...
专业透视!德普之星透视,竞技联... 专业透视!德普之星透视,竞技联盟破解版最新版,机巧教程(有挂工具)-哔哩哔哩1、竞技联盟破解版最新版...
教你透视!拱趴大菠萝万能挂!真... 教你透视!拱趴大菠萝万能挂!真是是有辅助app(有人有挂)-哔哩哔哩1、金币登录送、破产送、升级送、...
教你透视!uupoker透视,... 教你透视!uupoker透视,扑克之星辅助,指南教程(竟然有挂)-哔哩哔哩1、操作简单,无需扑克之星...
曝光透视!拱趴游戏破解器!一贯... 曝光透视!拱趴游戏破解器!一贯真的有辅助app(新版有挂)-哔哩哔哩1、点击下载安装,拱趴游戏破解器...