ALAssetsLibrary
không được dùng nữa trong những ngày này nhưng thực tế tất cả các ví dụ về SO vẫn đang sử dụng. Đối với mục tiêu của mình, tôi cần biết URL của video đã được thêm vào Thư viện ảnh để tôi có thể chia sẻ video với ứng dụng Instagram (đó là cách duy nhất mà Instagram chấp nhận video). URL có lẽ nên bắt đầu với "tài sản thư viện: // ..."Nhận URL của nội dung mới được tạo, phong cách iOS 9
Đây là đơn giản với ALAssetsLibrary
:
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:videoFilePath completionBlock:^(NSURL *assetURL, NSError *error) { // ...
Ở trên, URL được chuyển như một cuộc tranh cãi với khối hoàn thành. Nhưng còn cách tương thích với iOS 9 với phương thức PHPhotoLibrary
và phương thức performChanges
thì sao?
var videoAssetPlaceholder:PHObjectPlaceholder! // property
// ...
let videoURL = NSBundle.mainBundle().URLForResource("Video_.mp4", withExtension: nil)!
let photoLibrary = PHPhotoLibrary.sharedPhotoLibrary()
photoLibrary.performChanges({
let request = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(videoURL)
self.videoAssetPlaceholder = request?.placeholderForCreatedAsset
},
completionHandler: { success, error in
if success
{
// The URL of the video asset?
}
})
Tại sao bạn không chỉ cần bạn lưu video cục bộ trước khi chia sẻ nó? –
@LeoDabus Cách chia sẻ video, Instagram sẽ không thể đọc video từ hộp cát của ứng dụng của tôi –