Конвертировать записанный звук в 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 и т. Д.), Чтобы я мог понять, кто и что использует.