2017-06-15 4 views
0

Je veux composer deux audio en utilisant AVAssetExportSession .Quand j'utilise AVAsset pour obtenir la trace en utilisant 'tracksWithMediaType:AVMediaTypeAudio', j'ai un tableau vide. Ces fichiers audio sont enregistrés par 'AVAudioRecorder' et ils ont les extensions .aac. Le code que j'utilisé pour obtenir la piste:AVAsset 'tracksWithMediaType' retourne un tableau vide? (Audio)

AVAsset * asset = [AVAsset assetWithURL:[NSURL URLWithString:model.localPath]]; 

NSArray * tracks = [asset tracksWithMediaType:AVMediaTypeAudio]; 

AVAssetTrack * track = nil; 
if (tracks.count) { 
    track = tracks[0]; 
} 

Le paramètre init AVAudioRecorder:

AVAudioSession * audioSession = [AVAudioSession sharedInstance]; 
[audioSession setCategory:AVAudioSessionCategoryRecord error:nil]; 
[audioSession setActive:YES error:nil]; 


NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] init]; 
[recordSettings setValue :[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey: AVFormatIDKey]; 
[recordSettings setValue :[NSNumber numberWithFloat:11025.0] forKey: AVSampleRateKey];//44100.0 
[recordSettings setValue :[NSNumber numberWithInt:2] forKey: AVNumberOfChannelsKey]; 
[recordSettings setValue:[NSNumber numberWithInt:AVAudioQualityMax] forKey:AVEncoderAudioQualityKey]; 

J'essaie aussi d'autres. mp3 fichier pour obtenir la piste, mais c'est un tableau vide. Le localpath du fichier audio est:

/var/mobile/Containers/Data/Application/DDAB48C4-A233-4B4C-B3B7-5F66AE076239/Documents/media/1497494042.aac 

Répondre

0

Je trouve la solution par moi-même. Le chemin d'accès local est faux Le chemin correct devrait être ce "fichier: ///var/mobile/Containers/Data/Application/DDAB48C4-A233-4B4C-B3B7-5F66AE076239/Documents/media/1497494042.aac"