Audio 我可以用动态速度脱机渲染音频文件吗?

Audio 我可以用动态速度脱机渲染音频文件吗?,audio,core-audio,audio-recording,audiokit,Audio,Core Audio,Audio Recording,Audiokit,我正在开发一个卡拉OK应用程序。 我试图提供一个有趣的功能。 是否可以使用基于时间的动态节奏值脱机渲染音频文件? 点击下面的图片,你可以很快得到它 我在这里发布了一些代码 //我想动态更改bgm音频文件的节奏 self.timePitch=AKTimePitch(self.bgmPlayer) //在这里,我将初始化的速率值设置为时间音高 self.timePitch.rate=1.0 //支持iOS10+ self.out=AKOfflineRenderNode() self.timePi

我正在开发一个卡拉OK应用程序。 我试图提供一个有趣的功能。 是否可以使用基于时间的动态节奏值脱机渲染音频文件? 点击下面的图片,你可以很快得到它


我在这里发布了一些代码

//我想动态更改bgm音频文件的节奏
self.timePitch=AKTimePitch(self.bgmPlayer)
//在这里,我将初始化的速率值设置为时间音高
self.timePitch.rate=1.0
//支持iOS10+
self.out=AKOfflineRenderNode()
self.timePitch.connect(到:self.out)
//将渲染器设置为AudioKit.out
AudioKit.output=self.out
做{
试试AudioKit.start()
}抓住{
debugPrint(错误。本地化描述)
}
让url=url(fileURLWithPath:NSTemporaryDirectory()+“output.caf”)
//获取总持续时间
让duration=self.duration()
DispatchQueue.global(qos:.background).async{
做{
让avAudioTime=avAudioTime(sampleTime:0,atRate:self.out.avAudioNode.inputFormat(forBus:0.sampleRate)
//开始播放BGM
self.bgmPlayer.play(at:avAudioTime)
//并将其渲染为脱机文件
尝试self.out?.renderToURL(url,持续时间:持续时间)
// **********
//问题:
//渲染时可以更改“速度”值吗?
// **********
//完成后停止
self.bgmPlayer.stop()
}抓住{
调试打印(错误)
}
}

这实际上取决于动态节奏的实现方式-您可以通过时间/音调变换发送音频并渲染结果。

非常感谢。当我准备管道并开始脱机渲染时,是否可以更改帧位置的速度?是的,我看到了这个难题。节拍/音高修改定时的精确修改示例。在渲染中运行采样时,必须将激活时间转换为采样时间,并适当更改参数。