Domanda

Ho un file wave 22kHz e vogliono un file m4a 22kHz. AVAssetExportSession con il preset AVAssetExportPresetAppleM4A converte automaticamente il mio wav a 44 KHz. Ho provato diversi preset e pari a zero per creare l'ExportSession, ma senza successo.

C'è un modo per immobili set personalizzato di esportazione di un AVAssetExportSession o ho bisogno di un approccio completamente diverso come quello indicato nel Come convertire file WAV in M4A? ?

ecco il codice che ho finora, che funziona alla grande se si desidera un file 44kHz:

AVURLAsset *wavAsset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:wavPath] options:optionsDict];

AVMutableComposition *mutableComposition = [AVMutableComposition composition];
[mutableComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, wavAsset.duration)
  ofAsset:wavAsset atTime:kCMTimeZero error:&error];

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]
  initWithAsset:[mutableComposition copy] presetName:AVAssetExportPresetAppleM4A];
exportSession.outputURL = [NSURL fileURLWithPath:m4aPath];
exportSession.outputFileType = AVFileTypeAppleM4A;

[exportSession exportAsynchronouslyWithCompletionHandler:^{
  switch (exportSession.status) {
    case AVAssetExportSessionStatusCompleted: {
      [exportSession release];
      completionHandler(nil);
      break;
    }
    case AVAssetExportSessionStatusFailed: {
      NSLog(@"There was an error while exporting the file: %@", exportSession.error);
      completionHandler(exportSession.error);
      break;
    }
    // ... handle some other cases...
    default: {
      break;
    }
  }
}];

Sarebbe bello se ho appena perso qualcosa.

Grazie in anticipo, Dom

È stato utile?

Soluzione

ho avuto una certa fortuna con il TPAACAudioConverter disponibili qui . Esso utilizza l'API ExtendedAudioFile nel quadro AudioToolbox.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top