2017-05-06 9 views

答えて

1

さて、まずあなたは、このようなユーザーの権限を依頼する必要があります。

AVCaptureDevice.requestAccess(forMediaType: AVMediaTypeVideo) { response in 
    if response { 
     //access granted 
    } else { 

    } 
} 

//Photos 
let photos = PHPhotoLibrary.authorizationStatus() 
if photos == .notDetermined { 
    PHPhotoLibrary.requestAuthorization({status in 
     if status == .authorized{ 
      ... 
     } else {} 
    }) 
} 

次にあなたが怒鳴る示すように、あなたはplistファイルでそれをする理由について、いくつかの説明を配置する必要があります。

<key>NSCameraUsageDescription</key> 
<string>You can take photos</string> 
<key>NSPhotoLibraryUsageDescription</key> 
<string>You can select photos to attach it on this app.</string> 

についてビデオを編集する、それは非常に主観的なテーマです。どのような変更を行う必要がありますか?そしてあなたがしたいことに応じて、それは非常に複雑になる可能性があります。

import AssetsLibrary 

... 
... 

func downloadVideoToCameraRoll() { 

// Local variable pointing to the local file path for the downloaded video 
var localFileUrl: String? 

// A closure for generating the local file path for the downloaded video. This will be pointing to the Documents directory with a unique UDID file name. 
let destination: (NSURL, NSHTTPURLResponse) -> (NSURL) = { 
    (temporaryURL, response) in 

    if let directoryURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL { 
     let finalPath = directoryURL.URLByAppendingPathComponent("\(NSUUID()).\(response.suggestedFilename!)") 
     localFileUrl = finalPath.absoluteString 
     return finalPath 
    } 

    return temporaryURL 
} 

// The media post which should be downloaded 
let postURL = NSURL(string: "https://api.instagram.com/v1/media/" + "952201134785549382_250131908" + "?access_token=" + InstagramEngine.sharedEngine().accessToken)! 

// Then some magic happens that turns the postURL into the videoURL, which is the actual url of the video media: 
let videoURL = NSURL(string: "https://scontent.cdninstagram.com/hphotos-xfp1/t50.2886-16/11104555_1603400416544760_416259564_s.mp4")! 

// Download starts 
let request = Alamofire.download(.GET, videoURL, destination) 

// Completion handler for the download 
request.response { (request, response, data, error) -> Void in 
    if let path = localFileUrl { 
     let isVideoCompatible = UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(path) 
     println("bool: \(isVideoCompatible)") // This logs out "bool: false" 

     let library = ALAssetsLibrary() 

     library.writeVideoAtPathToSavedPhotosAlbum(NSURL(string: path), completionBlock: { (url, error) -> Void in 
      // Done! Go check your camera roll 
     }) 
    } 
} 
} 

幸運:

その後カメラロールに保存、私は、ファイルをダウンロードし、カメラロールに保存するコード例を持って!

+0

コードに追加すると「期待される宣言」と表示されますが、なぜこのエラーが表示されますか? :( – Gabi

関連する問題