Разделение аудиозаписи iOS на несколько файлов - PullRequest
0 голосов
/ 27 ноября 2018

Я записываю аудио, используя AVFoundation в LPCM, а затем разбиваю его на несколько частей в зависимости от времени.

Я сталкивался с несколькими различными способами разделения:

  1. Рассматривайте запись как AVAsset, а затем используйте AVAssetExportSession или несколько (см. Ниже).

  2. Просто разбейте необработанный двоичный файл записи на основеколичество выборок, как в принятом ответе на этот вопрос .

AVAssetExportSession кажется немного ориентированным на видео, и, как я его вижу, мне нужносоздать отдельный сеанс экспорта для каждого чанка.Я обеспокоен этим, и, честно говоря, это уводит меня в ад обратного вызова.

В настоящее время у меня есть что-то вроде этого псевдокода:

currentAsset!.loadValuesAsynchronously(forKeys: ["exportable"]) {
    if status is ok {
        export()
    }
}

func export() {
    for chunk in chunks {
        exportChunk(chunkTime)
    }
}

func exportChunk() {
    if let exporter = AVAssetExportSession(asset: currentAsset!, presetName: AVAssetExportPresetPassthrough) {
        // set exporter parameters
        exporter.exportAsynchronously(completionHandler: {
            // check status, update progress etc.
        }
    }
}

Выполнение чанкинга на основеобразцы кажутся простой вещью.Я думаю, я мог бы легко разделить его на последовательную очередь GCD.

Есть какие-нибудь проблемы?Я что-то упускаю?Как бы вы подошли к этому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...