¿Hay alguna manera de convertir mi archivo .WAV grabado al archivo .M4A en iOS?Cómo convertir el archivo WAV a M4A?
Y también tengo que convertir el archivo .M4A a .WAV.
He intentado con Audio Queue Services, pero no puedo hacerlo.
¿Hay alguna manera de convertir mi archivo .WAV grabado al archivo .M4A en iOS?Cómo convertir el archivo WAV a M4A?
Y también tengo que convertir el archivo .M4A a .WAV.
He intentado con Audio Queue Services, pero no puedo hacerlo.
En esta publicación: From iPod Library to PCM Samples in Far Fewer Steps Than Were Previously Necessary se describe cómo cargar un archivo desde la biblioteca de ipod de los usuarios y escribirlo en el sistema de archivos como un archivo lineal pcm (wav).
creo que el cambio que se necesita para hacer que el código para cargar un archivo del sistema de archivos en vez estaría en el NSURL que describe las que el activo es:
-(IBAction) convertTapped: (id) sender {
// set up an AVAssetReader to read from the iPod Library
NSURL *assetURL = [[NSURL alloc] initFileURLWithPath:@"your_m4a.m4a"];
AVURLAsset *songAsset =
[AVURLAsset URLAssetWithURL:assetURL options:nil];
NSError *assetError = nil;
AVAssetReader *assetReader =
[[AVAssetReader assetReaderWithAsset:songAsset
error:&assetError]
retain];
if (assetError) {
NSLog (@"error: %@", assetError);
return;
}
Si va en la dirección opuesta, tendrá que cambiar el formato en el extremo de salida:
NSDictionary *outputSettings =[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:kAudioFormatLinearPCM], AVFormatIDKey,
[NSNumber numberWithFloat:44100.0], AVSampleRateKey,
[NSNumber numberWithInt:2], AVNumberOfChannelsKey,
[NSData dataWithBytes:&channelLayout length:sizeof(AudioChannelLayout)],
AVChannelLayoutKey,
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsNonInterleaved,
[NSNumber numberWithBool:NO],AVLinearPCMIsFloatKey,
[NSNumber numberWithBool:NO], AVLinearPCMIsBigEndianKey,
nil];
no estoy seguro de la configuración exacta que irían aquí para M4A, pero esto debe llegar más cerca.
La otra opción sería cargar en ffmpeg lib y hacer toda su conversión allí, pero eso parece diferente de lo que desea.
TPAACAudioConverter funciona bien
¿Qué es channelLayout aquí? –
según la publicación vinculada: AudioChannelLayout channelLayout; memset (y channelLayout, 0, sizeof (AudioChannelLayout)); channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo; – jonbro