iOS Audiokit AKMIDISampler无法播放录制的音频,预期的文件格式吗?

时间:2019-05-20 03:36:05

标签: ios swift avaudiorecorder audiokit

我无法让AudioKit的AKMIDISampler播放我在应用程序中记录的文件。这些文件是使用AVAudioRecorder记录的,并存储在电话的文件文件夹中。我可以使用AKPlayer播放这些文件,因此录音似乎可以正常工作。当我使用这些文件之一运行以下代码时,没有声音也没有错误消息:

    let sampler = AKMIDISampler()
    let file = try! AKAudioFile(readFileName: filepath, baseDir: .documents)
    try! sampler.loadAudioFile(file)
    AudioKit.output = sampler
    try! AudioKit.start()
    try! sampler.play(noteNumber: 60, velocity: 127, channel: 0)

但是,在尝试调试问题时,我尝试了从互联网上下载的标准.wav文件鼓样本的相同过程,并将其转换为.m4a格式,与录制的音频文件的格式相同。该文件与上面的代码完美配合。此外,记录的文件和下载的文件都可以使用AKPlayer播放。

这使我相信我录制的文件的格式不适用于AKMIDISampler。这些是我一直在AVAudioRecorder上使用的录音设置:

[AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
 AVSampleRateKey: 12000,
 AVNumberOfChannelsKey: 1,
 AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue]

与AKMIDISampler一起使用的AKAudioFile的文件格式是否有特殊要求?问题可能是采样率或通道数(12000采样率,1个通道),与我下载的工作测试文件(44100采样率,2个通道)不同吗?还是我还有其他事情要忽略?任何帮助将不胜感激。

0 个答案:

没有答案