1

У меня есть простой код сжатия видео в низком качестве. Я тестирую свой код в iphone 4 с IOS-4.2.1. Проблема в том, что я тестирую свой код на устройстве без точек останова кода не удалось создать видео (это просто файл с нулевым kb или пустой файл), но когда я использую проверку точки останова по очереди, этот код медленно создает идеальное сжатое видео, которое также работает на QuickTime в Mac. После сжатия я делаю zip из этот видеофайл.AVAssetExportSession с и без точек останова

NSURL *videoURL=[[self.videourlarray objectAtIndex:i] valueForKey:UIImagePickerControllerReferenceURL]; 
     NSURL *outputURL = [NSURL fileURLWithPath:videoFile]; 

     [[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil]; 
     AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoURL options:nil]; 
     AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetLowQuality]; 
     exportSession.outputURL = outputURL; 
     exportSession.shouldOptimizeForNetworkUse = YES; 
     exportSession.outputFileType = AVFileTypeQuickTimeMovie; 
     [exportSession exportAsynchronouslyWithCompletionHandler:^(void) 
     { 
      NSLog(@"Export Complete %d %@", exportSession.status, exportSession.error); 
      [exportSession release]; 
     }]; 

спасибо за любую помощь ...

+0

Что такое статус экспорта? Что произойдет, если вы не выпустите exportSession? –

+0

по-прежнему не имеет успеха после того, как не освободить экспорт и exportSession.status - 3, а exportSession.error - null. – Dhawal

+0

Выходит ли ваше приложение? –

ответ

6

Я думаю, что вам нужно, чтобы убедиться, что вы не возиться с нитями .. (AVFoundation гид говорит, что экспортер не гарантированно работать на какой-либо конкретной нить).

Используйте такой блок.

[exportSession exportAsynchronouslyWithCompletionHandler:^(void) 
    { 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     NSLog(@"Export Complete %d %@", exportSession.status, exportSession.error); 
      }); 

    }]; 

Я лично называю делегата от блока, но я полагаю, ваше простое утверждение журнала только для этого примера, и вы уже знаете, что :)

+0

Наконец-то это dispatch_async работает для меня :) –

1

У меня была такая же проблема. После нескольких часов отладки я узнал, что мое расширение аудиофайла было .M4A всех прописных. Уменьшение букв устранит проблему.