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

相关内容

热门资讯

分享个大家!爱玩联盟脚本,wp... 【福星临门,好运相随】;分享个大家!爱玩联盟脚本,wpk模拟器多开,软件教程(确实有挂);暗藏猫腻,...
玩家必备教程!789大菠萝攻略... 玩家必备教程!789大菠萝攻略,wepokerplus开挂,黑科技教程(存在有挂);789大菠萝攻略...
分享开挂内幕!广西老友玩有破解... 分享开挂内幕!广西老友玩有破解码,impoker辅助,科技教程(有挂教程),广西老友玩有破解码是用手...
玩家必看科普!欢聚水鱼辅助,德... 玩家必看科普!欢聚水鱼辅助,德州透视hhpoker,2025新版(有挂实锤);1、这是跨平台的欢聚水...
揭秘攻略!欢乐游戏城攻略,菠萝... 揭秘攻略!欢乐游戏城攻略,菠萝辅助器免费版的特点,解密教程(有挂详情)是一款可以让一直输的玩家,快速...
一分钟了解!广东雀神智能插件免... 一分钟了解!广东雀神智能插件免费,德扑圈透视,可靠技巧(有挂细节);大家肯定在之前广东雀神智能插件免...
玩家必备科普!佛手十三道辅助,... 玩家必备科普!佛手十三道辅助,德普软件,必赢方法(有挂辅助);1、这是跨平台的佛手十三道辅助黑科技,...
最新技巧!内蒙老友辅助,wer... 最新技巧!内蒙老友辅助,werplan有挂吗,必备教程(有挂详细);内蒙老友辅助是一种具有地方特色的...
我来教教大家!潮友潮汕木虱开挂... 我来教教大家!潮友潮汕木虱开挂辅助器下载,wepoker免费辅助器,必赢方法(有挂秘诀)是一款可以让...
推荐十款!潮友会鱼虾蟹骰子概率... 推荐十款!潮友会鱼虾蟹骰子概率计算公式,拱趴大菠萝万能挂图解,力荐教程(有挂头条);潮友会鱼虾蟹骰子...