2015-11-03 69 views
11

对于iOS9,不建议使用ALAssetsLibrary。那么如何将其更改为PHPPhotoLibrary而不是ALAssets如何使用PHPhotoLibrary,如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) 
      { 

      } 
     }]; 
    } 

//我已经试过这一点,但没有工作

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ 

     PHAssetChangeRequest* createAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:outputFileURL]; 

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

回答

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

这是正确的答案,你应该把它@deniz它给出错误无效URL标记为这样的:) – joey

+0

。 –

+2

assetURL如何?保存后如何获得网址? – Besat

相关问题