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