iOS Audiokit AKMIDISampler нет воспроизведения записанного аудио, ожидаемый формат файла? - PullRequest
0 голосов
/ 20 мая 2019

У меня проблемы с получением AKMIDISampler от AudioKit для воспроизведения файлов, которые я записал в своем приложении. Файлы записываются с помощью 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]

Существуют ли какие-либо особые требования к формату файла AKAudioFile для использования с AKMIDISampler? Может ли проблема заключаться в частоте дискретизации или количестве каналов (частота дискретизации 12000, 1 канал), которые отличаются от загруженного мной рабочего тестового файла (частота дискретизации 44100, 2 канала)? Или я что-то пропускаю? Любая помощь будет принята с благодарностью.

...