0
다음 코드에서 NSImage를 디스크에 저장하려고합니다. 이미지는 동영상 저작물에서 생성됩니다.NSImage 표현. 첫 번째는 nil을 반환합니다. 왜?
비트가 실행되면 비트가 nil로 설정되고 이유를 이해할 수 없습니다. 왜 누군가가 설명 할 수 있습니까?
다음 코드에서 NSImage를 디스크에 저장하려고합니다. 이미지는 동영상 저작물에서 생성됩니다.NSImage 표현. 첫 번째는 nil을 반환합니다. 왜?
비트가 실행되면 비트가 nil로 설정되고 이유를 이해할 수 없습니다. 왜 누군가가 설명 할 수 있습니까?
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!
}