gpt4 book ai didi

ios - 如何在 iOS Swift 中录制视频时拍摄照片?

转载 作者:搜寻专家 更新时间:2023-11-01 07:02:55 24 4
gpt4 key购买 nike

在这里,我正在从设备的后置摄像头拍摄录制视频。拍摄视频时如何捕捉照片并保存到照片库。

这是我使用的代码:

 var photoTagImage = Data()

荧光笔按钮用于在拍摄视频时拍照

@IBAction func HightLightButtonClicked(_ sender: UIButton) {
// return

self.selectedtagsArray = NSMutableArray.init()

if self.recordEventInfo.isDayEvent {
let clipSecond: Int64 = 30
let clipName: String = "Hightlight"

let dict: Dictionary <String, Any> = [
"clipcapturesecond": Int64(self.totalRecordedSecond),
"cliptagsecond": clipSecond,
"clipname": clipName,
"teamname": "",
"tagsArray": self.selectedtagsArray,
"clipDate": Date.init()
]

self.videoClipsArray.add(dict)

} else if self.recordEventInfo.isMatchEvent {
picker.sourceType = .camera
picker.delegate = self

self.present(picker, animated: true, completion: nil)

let clipSecond: Int64 = 30
let clipName: String = "Hightlight"
let dict: Dictionary <String, Any> = [
"clipcapturesecond": Int64(self.totalRecordedSecond),
"cliptagsecond": clipSecond,
"clipname": clipName,
"teamname": "",
"tagsArray": self.selectedtagsArray,
"clipDate": Date.init(),
"clipImage": photoTagImage
]

print("phototagimage: \(photoTagImage)")

self.matchEventvideoClipsArray.add(dict)
}
}

拍照后应该保存到相册

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {

let image = info[UIImagePickerControllerOriginalImage] as! UIImage

let docDir = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)

let imageUniqueName: Int64 = Int64(NSDate().timeIntervalSince1970 * 1000)

let filePath = docDir.appendingPathComponent("\(imageUniqueName).png")

do {
if let pngimage = UIImagePNGRepresentation((info[UIImagePickerControllerOriginalImage] as? UIImage)!) {

photoTagImage = pngimage

print("photoImage::::::\(photoTagImage)")

try pngimage.write(to : filePath , options : .atomic)

/*FETCH DATA:
public static func fetchData(nameImage : String) -> UIImage{

let docDir = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
let filePath = docDir.appendingPathComponent(nameImage);

if FileManager.default.fileExists(atPath: filePath.path){

if let containOfFilePath = UIImage(contentsOfFile : filePath.path){

return containOfFilePath;

}

}

return UIImage();
}
*/
}
}
}

目前我可以录制视频但不能拍照。我打印了值 print("phototagimage: (photoTagImage)") 它显示 photoImage 是 0 字节。

这里是视频录制和拍照截图enter image description here

最佳答案

这对我有用,并将我的屏幕截图保存到 PhotoLibrary。

@IBOutlet weak var shutterButton: UIButton!



@IBAction func HightLightButtonClicked(_ sender: UIButton) {
self.shutterButton.isHidden = true
UIGraphicsBeginImageContextWithOptions(CGSize(width: self.view.frame.size.width, height: self.view.frame.size.height), false, 0.0)
self.view.drawHierarchy(in: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height), afterScreenUpdates: true)
if let image = UIGraphicsGetImageFromCurrentImageContext() {
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)

}
UIGraphicsEndImageContext();
self.shutterButton.isHidden = false

}

关于ios - 如何在 iOS Swift 中录制视频时拍摄照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com