2013-09-11 6 views
3

Im сохранение видео в photolibrary.Its работает для предыдущих ИОСОВ, в ИО 7 videoAtPathIsCompatibleWithSavedPhotosAlbum этой линии ВСЕГДА ложнаяИОС 7 сохранения видео выпуска

вот мой код любой может помочь мне.

NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:@"NewmergeVideo.mov"]; 

BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPathDocs]; 
if (fileExists) { 
    [[NSFileManager defaultManager] removeItemAtPath: myPathDocs error:NULL]; 

} 

NSURL *url = [NSURL fileURLWithPath:myPathDocs]; 
NSLog(@"%@",url); 
AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetHighestQuality]; 
exporter.outputURL=url; 
//[exporter setVideoComposition:MainCompositionInst]; 
exporter.outputFileType = AVFileTypeQuickTimeMovie; 

[exporter exportAsynchronouslyWithCompletionHandler:^ 
{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self _exportDidFinish:exporter]; 

    }); 
}]; 

здесь сохранить код

- (void)_exportDidFinish:(AVAssetExportSession*)session 
{ 
    NSURL *outputURL = session.outputURL; 
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 

    NSLog(@"%@",outputURL); 

    if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:outputURL]) { 
     [library writeVideoAtPathToSavedPhotosAlbum:outputURL 
            completionBlock:^(NSURL *assetURL, NSError *error){ 
             dispatch_async(dispatch_get_main_queue(), ^{ 
              if (error) { 
               NSLog(@"writeVideoToAssestsLibrary failed: %@", error); 

              }else{ 
               NSLog(@"Writing3"); 

              } 

             }); 

            }]; 
    } 
    [library release]; 
} 

в предыдущих КСН NSURL файл: //localhost/var/mobile/Applications/99B72CBA-A426-4F04-B7B2-2B61F0B0C513/Documents/NewmergeVideo.mov

в ИОС 7 NSURL файл: ///var/mobile/Applications/791244EE-771B-46C9-BD57-BA0BE6CACD3C/Documents/NewmergeVideo.mov

+0

С той же проблемой. Все еще пытаюсь решить его –

+0

Нашел ошибку. Это не путь к файлу error.check ваш окончательный параметр видео. В моем коде я accidantly положить timeScale = 600, я меняю его на 30 теперь его работы приятно. – mychar

+0

Какой объект вы устанавливаете или вызываете метод для установки timeScale. Я использую это: CMTimeRangeMake (kCMTimeZero, videoAsset.duration); –

ответ

0

Вы можете Используйте этот код, чтобы сохранить файл. (Это работает правильно)

if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(outputURL)) 
{ 
     UISaveVideoAtPathToSavedPhotosAlbum(outputURL, self, @selector(video:didFinishSavingWithError:contextInfo:), nil); 
} 

-(void) video: (NSString *) videoPath didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo 
{ 
    if(error) 
     NSLog(@"Finished saving video with error: %@", error); 
} 
Смежные вопросы