2017-06-21 113 views

回答

3

我不知道如何创建从视频对象PHAsset但是当你可以做到这一点,

我找到了解决create a PHAsset from an Video

码块1:

PhotoLibrary.shared().performChanges({ 
    let createAssetRequest = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(/*Your url here*/) 
    placeholder = createAssetRequest.placeholderForCreatedAsset 
    identifier = placeholder.localIdentifier 
}, completionHandler: { 
    success, error in 
    /* 
     Fetch Asset with the identifier here 
     after that, add the PHAsset into an album 
    */ 
    newAsset = PHAsset.fetchAssets(withLocalIdentifiers: [identifier], options: nil).firstObject 
} 

你可以用下面的代码片段添加PHAsset

码块2:

PhotoLibrary.shared().performChanges({ 

    guard let addAssetRequest = PHAssetCollectionChangeRequest(for: /*your specific album here as PHAssetCollection*/) else { return } 

    addAssetRequest.addAssets([newAsset] as NSArray) 
}, completionHandler: { 
    success, error in 
    //handle error or stuff you want to do after that here 
}) 

EDIT实施例用于创建PHAssetCollection

在这种情况下,我取出的创建PHAssetCollection它在performChanges(_:,completionHandler:)闭合创建之后,并把它在该功能的关闭@escaping

PHPhotoLibrary.shared().performChanges({ 

     let createRequest = PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle: name) 
     placeHolderIdentifier = createRequest.placeholderForCreatedAssetCollection.localIdentifier 

    }, completionHandler: { 
     success, error in 
     if success { 
      var createdCollection: PHAssetCollection? = nil 
      if placeHolderIdentifier != nil { 
       createdCollection = PHAssetCollection.fetchAssetCollections(withLocalIdentifiers: [placeHolderIdentifier!], options: nil).firstObject 
      } 
      completion(success, createdCollection as? T) 
     } else { 
      LogError("\(error)") 
      completion(success, nil) 
     } 
    }) 
+0

感谢您的支持。我会检查并通知你。 –

+0

@Ankit库马尔古普塔是如此的工作?还是你还在与...打交道? –

+0

对不起@Marcel本周还有其他一些优先事项。一定会测试它,并让你知道在下一个。 –

相关问题