3

我正在尝试制作一个 snapchat 克隆。目前我正在研究相机的视频录制部分。我拍了一段视频,制作了一个网址,然后设置了一个MPMoviePlayerController播放它。将一个添加UITextField到 MPMoviePlayerController.view 并保存整个内容。问题是,它与捕获静止图像不同,如下所示:

imageView.layer.addSublayer(captionField.layer)
UIGraphicsBeginImageContext(self.view.bounds.size)
imageView.layer.renderInContext(UIGraphicsGetCurrentContext())
image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

let library:ALAssetsLibrary = ALAssetsLibrary()
var orientation: ALAssetOrientation = ALAssetOrientation(rawValue: image.imageOrientation.rawValue)!
library.writeImageToSavedPhotosAlbum(image.CGImage, orientation: orientation, completionBlock: nil)

目前我有这个,它只保存视频但不保存 uitextfield :

moviePlayer = MPMoviePlayerController(contentURL: outputFileURL)

player = moviePlayer!
player.view.frame = self.view.bounds
player.controlStyle = .None
player.repeatMode = .One
player.prepareToPlay()
player.scalingMode = .AspectFill
self.view.addSubview(player.view)
player.view.layer.addSublayer(captionField.layer)
UIGraphicsBeginImageContext(self.view.bounds.size)
player.view.layer.renderInContext(UIGraphicsGetCurrentContext())
UIGraphicsEndImageContext()

ALAssetsLibrary().writeVideoAtPathToSavedPhotosAlbum(outputFileURL, completionBlock: {
    (assetURL:NSURL!, error:NSError!) in
    if error != nil{
        print(error)
    } else {
        self.resetButtons()
    }
})

我假设会有一个视频相当于静止图像的保存方式,但是你不保存MPMoviePlayerController,在我的函数中它被称为“播放器”或 player.view,而是播放器的 URL,可以是使用 player.contentURL、(很高兴知道,虽然在这种情况下是多余的)或 outputFileURL 访问。过去是否有人使用任何基于相机的应用程序实现了此功能?有谁知道如何做到这一点?

4

0 回答 0