2011-06-20 2 views
2

Мы пытаемся взять существующее видео с аудио (.mov) и создать более удобную для электронной почты версию. Кажется довольно простым, и приведенный ниже код делает то, что нам нужно ... почти.AVAssetExportSession no audio (iPhone), работает на iPad

На iPad2 (4.3.3) он работает в отладочной версии &, выпуская все время. На iPhone 4 (4.3.3) или 4-го поколения iPod Touch нет звука. Время от времени, нет очевидной корреляции с тем, что вызывает его, он начнет работать на iPhone. Удалите приложение, перестройте/установите, и он больше не работает.

AVURLAsset* asset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:sourcePath] options:nil]; 
session = [[AVAssetExportSession alloc] initWithAsset:asset 
             presetName:AVAssetExportPresetLowQuality]; 
session.outputURL = [NSURL fileURLWithPath:destPath]; 
session.outputFileType = AVFileTypeQuickTimeMovie; 
session.shouldOptimizeForNetworkUse = YES; 
[session exportAsynchronouslyWithCompletionHandler:^{ 
    [self performSelectorOnMainThread:@selector(conversionFinished) 
          withObject:nil 
         waitUntilDone:NO]; }]; 

ответ

2

Вы тоже играете в кино, например, в MPMoviePlayer? У меня были некоторые случайные экспортные причуды во время игры или использования других инициализированных активов с одинаковыми URL-адресами.

+0

Я тестировал его в обоих направлениях, без разницы. Мы создаем фильм с помощью AVAssetWriter и вызываем [assetWriterInput markAsFinished] и [assetWriter finishWriting] на нем. Он отлично работает на устройстве (или на рабочем столе после xfer). – Jer

+0

На самом деле это БОЛЬШАЯ подсказка! Если я принудительно завершу приложение после записи, а затем зайду, чтобы создать меньшее видео, которое оно работает. Итак, теперь, чтобы узнать, почему. – Jer

+5

Клянусь, что этот материал AV требует, чтобы вуду работал правильно. –