Параметры вывода AVAssetWriterInput не отображают действительные NSData - PullRequest
1 голос
/ 18 июня 2011

Я использую AVAssetWriterInput, чтобы получить файл mp3 от пользователя и отправить его по электронной почте (только DRM бесплатно). Я использую этот процесс, когда использую PCM, но когда я пробую mp3, или m4a, или caf, я либо получаю файл, который не работает, либо получаю пустые данные. Я думаю, что это связано с моими настройками вывода. Используемые настройки вывода, которые не рисуют никаких данных, приведены ниже. Я открыт, чтобы изменить все это. Спасибо!

    NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                [ NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
                                [ NSNumber numberWithInt: 1 ], AVNumberOfChannelsKey,
                                [ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey,
                                [ NSData dataWithBytes: &channelLayout length: sizeof( AudioChannelLayout ) ], AVChannelLayoutKey,
                                [ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,
                                nil];

1 Ответ

2 голосов
/ 19 июня 2011

Apple не предоставляет API для записи mp3-файлов, возможно, потому, что mp3 - это просто пакеты без заголовка, и просто записывать необработанные пакеты работает нормально.

Что касается записи данных AAC в m4a /Я не уверен, что контейнеры для кафе - но этого AVEncoderBitRateKey определенно не должно быть, потому что вы ничего не кодируете - вы просто передаете данные.Так почему бы не забыть об AVAssetWriter и использовать AVAssetExportSession с предустановкой сквозного доступа?

...