J'essaye d'enregistrer du son et de le convertir en d'autres formats sonores. J'utilise classe AVAudioRecorder pour enregistrer et ce sont les paramètres d'enregistrement que j'ai utilisé ..Convertir le son enregistré dans l'iphone d'un format à l'autre dire wav au mp3
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];
enregistrement fonctionne à merveille. Maintenant, je veux convertir ce fichier audio au format mp3. Puis-je le faire avec le framework AudioToolBox. J'ai essayé
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;
}
La fonction AudioConverterNew() me donne erreur de kAudioConverterErr_FormatNotSupported ('fmt'). J'ai essayé avec différentes combinaisons mFormatID et mFormatFlag. Mais chaque fois que l'un des operant (source ou destination) est mp3, je reçois cette erreur. Maintenant s'il vous plaît aidez-moi avec ces questions.
Peut-on utiliser le cadre AudioToolbox et fonctions pour convertir les sons entre comprimé et non format compressé (À l'heure actuelle, je veux convertir entre .wav et .mp3). Dans la documentation AudioConverterNew ils disent "Encodage et décodage entre PCM linéaire et formats compressés est pris en charge". Mais ils ne sont pas disant spécifiquement qui compressé formats.
Si la réponse à la question 1 est « non » alors quel cadre dois-je utiliser pour convertir le son entre ci-dessus formats mentionnés?
- Non lié au-dessus de 2, mais peut personne me donner un lien vers les sites Web où l'information sur différents formats sonores (wav, mp3, aac etc) et leurs numériques représentations (cpm, LPCM, etc.) afin que je peux comprendre qui utilise quoi.