当前位置: 首页 > news >正文

swift 屏幕录制

步骤 1:导入 ReplayKit

import ReplayKit

步骤 2:开始录屏

let screenRecorder = RPScreenRecorder.shared()
// 麦克风或系统音频
screenRecorder.isMicrophoneEnabled = truefunc startRecording() {guard screenRecorder.isAvailable else {print("Screen recording is not available on this device.")return}screenRecorder.startRecording { error inif let error = error {print("Error starting recording: \(error.localizedDescription)")} else {print("Recording started successfully.")}}
}

步骤 3:停止录屏

func stopRecording() {screenRecorder.stopRecording { previewController, error inif let error = error {print("Error stopping recording: \(error.localizedDescription)")} else {print("Recording stopped successfully.")}// 可选择展示预览界面if let previewController = previewController {previewController.previewControllerDelegate = selfself.present(previewController, animated: true)}}
}
extension YourViewController: RPPreviewViewControllerDelegate {func previewControllerDidFinish(_ previewController: RPPreviewViewController) {previewController.dismiss(animated: true, completion: nil)}
}

4. 不预览直接保存录制内容

RPScreenRecorder.shared().startCapture { sampleBuffer, bufferType, error inif let error = error {print("Error capturing: \(error.localizedDescription)")return}// 处理视频和音频数据if bufferType == .video {print("Captured video frame.")} else if bufferType == .audioApp || bufferType == .audioMic {print("Captured audio frame.")}
} completionHandler: { error inif let error = error {print("Error starting capture: \(error.localizedDescription)")} else {print("Capture started successfully.")}
}
http://www.lryc.cn/news/498467.html

相关文章:

  • 通过精密时间协议(PTP)对计算机网络中的多个设备进行时间同步
  • Docker 安装系列
  • 使用springboot-3.4.1搭建一个netty服务并且WebSocket消息通知(适用于设备直连操作,以及回复操作)
  • 4. 设计模式分类
  • Hive分区值的插入
  • 【多个图片合并成PDF】
  • Flutter动画(三)内建显式动画Widget
  • 本地运行打包好的dist
  • 什么是Layer Normalization?
  • 17. Threejs案例-Three.js创建多个立方体
  • RK3568 Android14 打开蓝牙时默认同意
  • 多模态视频大模型Aria在Docker部署
  • Ant-Design-Vue 全屏下拉日期框无法显示,能显示后小屏又位置错乱
  • AMR移动机器人赋能制造业仓储自动化升级
  • 【PHP项目实战】活动报名系统
  • 【HarmonyOS】Component组件引入报错 does not meet UI component syntax.
  • vue3项目最新eslint9+prettier+husky+stylelint+vscode配置
  • 备赛蓝桥杯--算法题目(3)
  • CSS中要注意的样式效果
  • 【NIPS2024】Unique3D:从单张图像高效生成高质量的3D网格
  • 使用Kubernetes部署Spring Boot项目
  • 基于VTX356语音识别合成芯片的智能语音交互闹钟方案
  • git将一个项目的文件放到另一个项目的文件夹下
  • Cannon.js 从入门到精通
  • 深入理解 TCP 标志位(TCP Flags)
  • K8S,StatefulSet
  • JavaScript动态网络爬取:深入解析与实践指南
  • MySql:Centos7安装MySql
  • Vector软件CANdb++的信号起始位Bug
  • elasticsearch-7.14.0集群部署+kibana