2016-07-10 7 views
2

Ich wechsele von ALAssentsLibrary zu PHPHotoLibrary und möchte wissen, ob die Videodatei speichern kann oder nicht. In ALAssetsLibray, wissen Sie, könnten wir wissen, dass es starten, bevor Video-Datei mit dem APIIn PHPhotoLibrary, wie man erkennt, ob eine Videodatei auf dem iPhone speichern kann oder nicht

- (BOOL)videoAtPathIsCompatibleWithSavedPhotosAlbum:(NSURL *)videoPathURL; 

Hat jemand weiß, die Ersatz-API für videoAtPathIsCompatibleWIthSavedPhotoAlbum in PHPhotoLibrary zu speichern?

Oder kennen Sie den genauen Fehlercode, was bedeutet, dass eine Videodatei nicht auf dem iOS-Gerät gespeichert werden kann?

Mein Code für die Videodatei zu speichern ist unten wie,

- (void)saveVideoFile:(NSURL *)videoURL completion:(savePhotoFileCompletion)completion 
{ 
    [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ 
      PHAssetChangeRequest *assetChangeRequest; 
      assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:videoURL]; 

      PHAssetCollectionChangeRequest *assetCollectionChangeRequest = 
       [PHAssetCollectionChangeRequest changeRequestForAssetCollection:self.assetCollection]; 
      [assetCollectionChangeRequest addAssets:@[ [assetChangeRequest placeholderForCreatedAsset] ]]; 

     } 

     completionHandler:^(BOOL success, NSError *_Nullable error) { 
      DBGLog(@"success=%@, error=%@", (success ? @"YES" : @"NO"), error); 
      completion(success, error); 
     }]; 
} 

ich die Frage sprechen über das gleiche Problem gefunden.

How to use PHPhotoLibrary like ALAssetsLibrary

Aber es bezieht sich nicht auf die genaue Antwort.

Antwort

1

Ich habe meine Frage an Apple mit TSI gestellt. Und ihre Antwort ist die folgende API

AVAsset *avAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:videoPath]]; 
BOOL canSaveVideo = [avAsset isCompatibleWithSavedPhotosAlbum]; 

Es schien zu bedienen, dass ich die richtige Kompatibilität zu bekommen. Ein wichtiger Punkt ist, dass PHPhotoLibrary das Video auch dann speichern kann, wenn der Wert canSaveVideo NEIN ist.

Vielen Dank.

Verwandte Themen