Конвертировать записанный звук в iphone из одного формата в другой, скажем, WAV в mp3

Я пытаюсь записать некоторые аудио и конвертировать их в другие форматы звука. Я использую класс AVAudioRecorder для записи, и это настройки записи, которые я использовал ..

 NSDictionary *recordSetting = [[NSMutableDictionary alloc] init];
 [recordSetting setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];//kAudioFormatMicrosoftGSM,kAudioFormatLinearPCM
 [recordSetting setValue:[NSNumber numberWithFloat:8000] forKey:AVSampleRateKey]; 
 [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey];
 [recordSetting setValue :[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
 [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
 [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

Запись работает прекрасно. Теперь я хочу преобразовать этот звуковой файл в формат mp3. Могу ли я сделать это с помощью AudioToolBox Framework. Я пробовал это

 AudioStreamBasicDescription sourceFormat,destinationFormat;
 //Setting up source Format setting..here wav
 sourceFormat.mSampleRate   = 8000.0;
 sourceFormat.mFormatID    = kAudioFormatLinearPCM;
 sourceFormat.mFormatFlags   = kAudioFormatFlagIsSignedInteger ;
 sourceFormat.mBytesPerPacket  = 4;
 sourceFormat.mFramesPerPacket  = 1;
 sourceFormat.mBytesPerFrame   = 4;
 sourceFormat.mChannelsPerFrame  = 2;
 sourceFormat.mBitsPerChannel  = 16;

 destinationFormat.mSampleRate  = 8000.0;
 destinationFormat.mFormatID   = kAudioFormatMPEGLayer3;
 destinationFormat.mFormatFlags  = 0;
 destinationFormat.mBytesPerPacket = 4;
 destinationFormat.mFramesPerPacket = 1;
 destinationFormat.mBytesPerFrame = 4;
 destinationFormat.mChannelsPerFrame = 2;
 destinationFormat.mBitsPerChannel = 16;

 OSStatus returnCode     =     AudioConverterNew(&sourceFormat,&destinationFormat,&converter);
 if (returnCode) {
    NSLog(@"error getting converter : %d",returnCode);
    return;
 }

Функция AudioConverterNew () выдаёт мне ошибку kAudioConverterErr_FormatNotSupported ('fmt'). Я пробовал с различными комбинациями mFormatID и mFormatFlag. Но всякий раз, когда один из оперантов (источник или место назначения) - mp3, я получаю эту ошибку. Теперь, пожалуйста, помогите мне с этими вопросами.

Можем ли мы использовать каркас и функции AudioToolbox для преобразования звуков между сжатым и несжатым форматом (в настоящее время я хочу конвертировать между .wav и .mp3). В документации AudioConverterNew говорится, что «поддерживается кодирование и декодирование между линейным PCM и сжатыми форматами». Но они конкретно не говорят, какие сжатые форматы.

Если ответ на вопрос 1 «нет», то какую структуру мне нужно использовать для преобразования звука между вышеупомянутыми форматами?

Не относится к пункту 2 выше, но кто-нибудь может дать мне ссылку на любые веб-сайты, на которых размещена информация о различных звуковых форматах (wav, mp3, aac и т. Д.) И их цифровых представлениях (cpm, lpcm и т. Д.), Чтобы я мог понять, кто и что использует.

Ответы на вопрос(1)

Ваш ответ на вопрос