gpt4 book ai didi

ios - 无法将 .wav 文件加载到新的 AKSampler

转载 作者:行者123 更新时间:2023-11-28 05:39:36 26 4
gpt4 key购买 nike

我正在尝试用新的 AKSampler 替换 AKMidiSamplerAKPlayer,但由于某些原因,新的采样器无法播放AKAudioFiles 旧的。

这是一个使用所有三个采样器的小代码示例:AKMidiSamplerAKPlayer 和新的 AKSampler。全部加载相同的 AKAudioFile。如果按原样运行,则不会播放任何声音。

取消注释时

player.play()

try auSampler.play(noteNumber: 60, velocity: 127, channel: 0)

会有声音。

我的猜测是我没有正确使用 AKSampleDescriptor,我用它作为例子 here .

import Foundation
import AudioKit

class Conductor {
var sampler = AKSampler()
var auSampler = AKMIDISampler()
var player = AKPlayer()
var mixer = AKMixer()

init() {
do {
let akfile = try AKAudioFile(readFileName: "Drums.wav")



let descriptor = AKSampleDescriptor(noteNumber: 60,
noteFrequency: Float(AKPolyphonicNode.tuningTable.frequency(forNoteNumber: 60)),
minimumNoteNumber: 0,
maximumNoteNumber: 127,
minimumVelocity: 0,
maximumVelocity: 127,
isLooping: true,
loopStartPoint: 0.0,
loopEndPoint: 1.0,
startPoint: 0.0,
endPoint: 0.0)

sampler.loadAKAudioFile(from: descriptor, file: akfile)
try auSampler.loadAudioFile(akfile)
player = akfile.player

[player, sampler, auSampler] >>> mixer
AudioKit.output = mixer
try AudioKit.start()


// player.play()
// try auSampler.play(noteNumber: 60, velocity: 127, channel: 0)
sampler.play(noteNumber: 60, velocity: 127)



}
catch {
print("ehhhh...")
}

}


}

最佳答案

解决方案很简单,我只需要添加一行:

sampler.buildKeyMap()

加载样本后。现在一切都按预期工作。

关于ios - 无法将 .wav 文件加载到新的 AKSampler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57310559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com