2015-11-03 32 views
11

W przypadku iOS9, ALAssetsLibrary jest przestarzałe. Jak zmienić to ustawienie jako PHPPhotoLibrary zamiast ALAssets?Korzystanie z biblioteki PHPhotoLibrary, takiej jak ALAssetsLibrary

if (RecordedSuccessfully && recording == NO) { 
    //----- RECORDED SUCESSFULLY ----- 
    NSLog(@"didFinishRecordingToOutputFileAtURL - success"); 
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:outputFileURL]) 
    { 
     [library writeVideoAtPathToSavedPhotosAlbum:outputFileURL 
            completionBlock:^(NSURL *assetURL, NSError *error) 
     { 
      if (error) 
      { 

      } 
     }]; 
    } 

// próbowałem tego, ale nie działał

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ 

     PHAssetChangeRequest* createAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:outputFileURL]; 

     NSParameterAssert(createAssetRequest); 
    } 
             completionHandler:^(BOOL success, NSError *error) {}]; 
    } 
} 

Odpowiedz

16
// Save to the album 
    __block PHObjectPlaceholder *placeholder; 

    [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ 
     PHAssetChangeRequest* createAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:outputFileURL]; 
     placeholder = [createAssetRequest placeholderForCreatedAsset]; 

    } completionHandler:^(BOOL success, NSError *error) { 
     if (success) 
     { 
      NSLog(@"didFinishRecordingToOutputFileAtURL - success for ios9"); 
     } 
     else 
     { 
      NSLog(@"%@", error); 
     } 
    }]; 
+1

to jest poprawna odpowiedź, należy oznaczyć je jako takie :) – joey

+0

@deniz To daje błąd Nieprawidłowy URL. –

+2

Co powiesz na assetURL? Jak mogę uzyskać URL po zapisaniu? – Besat