2016-08-31 4 views

답변

0

xCode의 컴파일러와 설명서를주의 깊게 읽고 설명서를 자세히 읽은 후에 필자는 원하는대로 작동하는 코드에 마침내 도달했습니다.

@IBAction func chooseVideoFrame(sender: AnyObject) { 
     // Get the playhead time and grab fram from that time 
     let playheadPosition = player2!.currentTime() 
     videoThumb = generateThumnail(videoURL.stringValue, fromTime: playheadPosition) 
     videoThumbnail.image = videoThumb 
     // Save the frame as a JPEG and save it to disk so it can be saved as 
     // as CKAsset later 
     if let tiffRep = videoThumb?.TIFFRepresentation { 
      let jpegImage = NSBitmapImageRep(data: tiffRep)!.representationUsingType(.NSJPEGFileType, properties: [:])! 
      theTempPath = (getDocumentsDirectory() as String) + "/thumbTemp.jpg" 
      jpegImage.writeToFile(theTempPath!, atomically: false) 

     } else { 

      problemAlert("Video Thumbnail problem", info: "There's a problem with saving the video Thumbnail image.") 
     } 
    } 

    func generateThumnail(videoURL : String, fromTime:CMTime) -> NSImage { 
     let url = NSURL(string: videoURL) 
     let asset :AVAsset = AVAsset(URL:url!) 
     let assetImgGenerate : AVAssetImageGenerator = AVAssetImageGenerator(asset: asset) 
     assetImgGenerate.appliesPreferredTrackTransform = true 
     assetImgGenerate.requestedTimeToleranceAfter = kCMTimeZero; 
     assetImgGenerate.requestedTimeToleranceBefore = kCMTimeZero; 

     do { let thumbnail = try assetImgGenerate.copyCGImageAtTime(fromTime, actualTime: nil) 

      thumb = NSImage(CGImage: thumbnail, size: CGSize(width: 768.0, height: 432.0)) 

      } catch { 

       problemAlert("Could Not Generate Thumbnail",info: "There was a problem with making the video Thumbnail image.") 
      } 

     return thumb! 
    }