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

标签 ios swift audiokit

我正在尝试用新的 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/

相关文章:

ios - 如何为图像和消息创建条件?

ios - SwiftUI 未将自定义字体应用于选项卡式 View

swift - AKMIDI监听器 : ReceivedNoteOn unable to change UI Components

iOS - AudioKit 在接听电话时崩溃

objective-c - iOS:问题保存照片

objective-c - 如何显示静态自定义单元格

ios - 在 iOS 中以后台模式运行任务

ios - tableView 重新加载时崩溃

swift - 快速从音频文件中删除音频 channel

ios - 处理 NSDateFormatter 区域设置 "feature"的最佳方法是什么?