我在使用音序器将 MIDI 保存到本地文件时遇到问题。
正在创建并保存音频,但音频输出与应有的完全不同。
这是我正在使用的代码:
var sequencer : AKSequencer?
let piano = AKMIDISampler()
var offlineRender = AKOfflineRenderNode()
do {
try piano.loadWav("mixloop")
piano >>> offlineRender
AudioKit.output = offlineRender
sequencer = AKSequencer(filename: "melody")
sequencer?.setGlobalMIDIOutput(piano.midiIn)
AudioKit.start()
let docs = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let destAudioFile = docs.appendingPathComponent("rendered11.caf")
offlineRender.internalRenderEnabled = false
self.sequencer?.play()
let seconds = sequencer?.length.seconds
try self.offlineRender.renderToURL(destAudioFile, seconds: seconds ?? 4)
self.sequencer!.stop()
self.offlineRender.internalRenderEnabled = true
print("Done! Rendered to " + destAudioFile.path)
// test the local song using just AVAudioPlayer
playLocalSong(url: destAudioFile)
} catch {
print(error)
return
}
我附加了 mixloop.wav、melody.mid 和输出 render11.caf。files https://drive.google.com/file/d/0B0-hfmdUuApIM2M3TXBsSEt6R1E/view?usp=sharing
如果我改变这一行:
AudioKit.output = offlineRender
to
AudioKit.output = piano
声音正如其应有的那样,有 16 秒的声音,而不是只有前几秒。
上面的代码有问题吗?
提前致谢
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)