Экспорт аудио + видео с помощью AVAssetExportSession, но звук не воспроизводится в iphone4 4.2.1
Я экспортирую аудиофайл audio.caf с видео video.mp4 и создаю новую композицию output.mp4. Он прекрасно работает с iOS 5.0, но с iPhone4 4.2.1 композиция не воспроизводит звук.
NSURL *outputURL = [NSURL fileURLWithPath:outputPath];
AVAssetExportSession* _assetExport = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetMediumQuality];
_assetExport.outputFileType = AVFileTypeQuickTimeMovie;
_assetExport.outputURL = outputURL;
_assetExport.timeRange = CMTimeRangeMake(CMTimeMakeWithSeconds(0.25, 600), videoAsset.duration);
_assetExport.shouldOptimizeForNetworkUse = YES;
[_assetExport exportAsynchronouslyWithCompletionHandler:^{
Я проверил оригинальные треки в этом iphone, и оба в порядке, только композиция не добавляет аудио.
Вот как я добавляю звуковую дорожку в композицию:
NSURL *audioURL = [NSURL fileURLWithPath:audioPath];
AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:audioURL options:nil];
CMTimeRange audio_timeRange = CMTimeRangeMake(CMTimeMake(startRecording_,1),
audioAsset.duration);
AVMutableCompositionTrack *b_compositionAudioTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
[b_compositionAudioTrack insertTimeRange:audio_timeRange ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:&error];
Это работало на многих устройствах iOS5:S
Заранее спасибо!
2 ответа
Решение
Я обнаружил, что мне нужно изменить расширение файла на 'mov', затем выполнить мой экспорт (я использую предустановку PassThrough), а затем изменить его обратно на mp3 (в моем случае). Похоже, ошибка....