当前位置: 首页 > 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.")}
}

相关文章:

swift 屏幕录制

步骤 1:导入 ReplayKit import ReplayKit步骤 2:开始录屏 let screenRecorder RPScreenRecorder.shared() // 麦克风或系统音频 screenRecorder.isMicrophoneEnabled truefunc startRecording() {guard screenRecorder.isAvailable else {print(&quo…...

通过精密时间协议(PTP)对计算机网络中的多个设备进行时间同步

PTP 模块 - 使用教程 目录 PTP 模块 - 使用教程简介第 1 步:为主时钟创建一个 PTP 时钟实例第 2 步:添加 PTP 端口第 3 步:查询 PTP 时钟或 PTP 端口的状态第 4 步:清除 FAULTY 状态第 5 步:为 PTP 事件安装处理程序第…...

Docker 安装系列

Centos8 安装Docker Docker安装mysql8.0 Docker安装稳定版本nginx-1.26.2 Docker 安装最新版本 Jenkins Docker Redis Docker 安装 eclipse-mosquitto Docker mongo:5.0 Docker 安装 Redis的完全体版本RedisMod docker pull elasticsearch:8.0.0 docker 安装nacos v2.…...

使用springboot-3.4.1搭建一个netty服务并且WebSocket消息通知(适用于设备直连操作,以及回复操作)

引入最新版本 <!--websocket--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>启动类加入 //netty 协议服务端口启动 NettyTcpHandler.start()…...

4. 设计模式分类

4.1 创建型模式 这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性。 序 号 类 型 业务场景 实现要点 1 工 厂 方 法 多种类型商品不同接口,统一发奖服 务搭建场景 定义一个创建对象的接口,让其子类自 己决定实例化哪一个工厂类,工厂模式 使其创建过程延迟…...

Hive分区值的插入

对于Hive分区表&#xff0c;在我们插入数据的时候需要指定对应的分区值&#xff0c;而这里就会涉及很多种情况。比如静态分区插入、动态分区插入、提供的分区值和分区字段类型不一致&#xff0c;或者提供的分区值是NULL的情况&#xff0c;下面我们依次来展现下不同情况下的表现…...

【多个图片合并成PDF】

因工作安排,小编最近参加了几场学术会议,被多名业界大佬的汇报所震撼。当然也不是白来的,好东西要留存下来回来分享给科室。因此,小编变成了幻灯片专职摄影师,参会的同时对着大牛的PPT就是一顿咔咔咔。回来后,面对手机里数百张照片却犯了难,就这样一张张发到群里么?还是…...

Flutter动画(三)内建显式动画Widget

常见的内建显式动画Widget&#xff1a; ListenableBuilder&#xff1a; AnimatedBuilder AnimatedWidget AlignTransition DecoratedBoxTransition DefaultTextStyleTransition PositionedTransition RelativePositionedTransition RotationTransition ScaleTransiti…...

本地运行打包好的dist

首先输入打包命令 每个人设置不一样 一般人 是npm run build如果不知道可以去package.json里去看。 打包好文件如下 命令行输入 :npm i -g http-server 进入到dist目录下输入 命令cmd 输入 http-server 成功...

什么是Layer Normalization?

一、概念 前面的文章中&#xff0c;我们介绍了Batch Normalization。BN的目的是使得每个batch的输入数据在每个维度上的均值为0、方差为1&#xff08;batch内&#xff0c;数据维度A的所有数值均值为0、方差为1&#xff0c;维度B、C等以此类推&#xff09;&#xff0c;这是由于神…...

17. Threejs案例-Three.js创建多个立方体

17. Threejs案例-Three.js创建多个立方体 实现效果 知识点 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 WebGL 场景的核心类。它负责将场景中的对象渲染到画布上。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选…...

RK3568 Android14 打开蓝牙时默认同意

1、最近给一个项目做了一款基础功能的自动测试&#xff0c;在打开蓝牙时&#xff0c;有一个是否同意的提示框要去掉&#xff0c;即默认同意打开蓝牙。 2、路径&#xff1a; packages/apps/Settings/src/com/android/settings/bluetooth/RequestPermissionActivity.java// Sho…...

多模态视频大模型Aria在Docker部署

多模态视频大模型Aria在Docker部署 契机 ⚙ 闲逛HuggingFace的时候发现一个25.3B的多模态大模型&#xff0c;支持图片和视频。刚好我有H20的GPU所以部署来看看效果&#xff0c;因为我的宿主机是cuda-12.1所以为了防止环境污染采用docker部署&#xff0c;通过一系列的披荆斩棘…...

Ant-Design-Vue 全屏下拉日期框无法显示,能显示后小屏又位置错乱

问题1&#xff1a;在全屏后 日期选择器的下拉框无法显示。 解决&#xff1a;在Ant-Design-Vue的文档中&#xff0c;很多含下拉框的组件都有一个属性 getPopupContainer可以用来指定弹出层的挂载节点。 在该组件上加上 getPopupContainer 属性,给挂载到最外层盒子上。 <temp…...

AMR移动机器人赋能制造业仓储自动化升级

在当今制造业的激烈竞争中&#xff0c;智能化、数字化已成为企业转型升级的关键路径。一家制造业巨头&#xff0c;凭借其庞大的生产体系和多个仓库资源&#xff0c;正以前所未有的决心和行动力&#xff0c;在制造业智能化浪潮中勇立潮头&#xff0c;开启了降本增效的新篇章。这…...

【PHP项目实战】活动报名系统

目录 项目介绍 开发语言 后端 前端 项目截图&#xff08;部分&#xff09; 首页 列表 详情 个人中心 后台管理 项目演示 项目介绍 本项目是一款基于手机浏览器的活动报名系统。它提供了一个方便快捷的活动报名解决方案&#xff0c;无需下载和安装任何APP&#xff0c…...

【HarmonyOS】Component组件引入报错 does not meet UI component syntax.

【HarmonyOS】Component组件引入报错 一、问题背景 有时会碰到引入组件时&#xff0c;无法import引入组件&#xff0c;导致引入的组件报错。 或者提示does not meet UI component syntax. &#xff08;不符合UI组件语法。&#xff09; 如下图所示&#xff0c;在引入组件时&a…...

vue3项目最新eslint9+prettier+husky+stylelint+vscode配置

一、eslint9和prettier通用配置 安装必装插件 ESlint9.x pnpm add eslintlatest -DESlint配置 vue 规则 , typescript解析器 pnpm add eslint-plugin-vue typescript-eslint -DESlint配置 JavaScript 规则 pnpm add eslint/js -D配置所有全局变量 globals pnpm add globa…...

备赛蓝桥杯--算法题目(3)

1. 2的幂 231. 2 的幂 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool isPowerOfTwo(int n) {return n>0&&n(n&(-n));} }; 2. 3的幂 326. 3 的幂 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool isPowerOfT…...

CSS中要注意的样式效果

1. 应用过渡效果 transition: var(--aa); 2.告诉浏览器元素可能会发生变换&#xff0c;从而优化性能。 will-change: transform; 3.使元素不响应鼠标事件。 pointer-events: none; 4.隐藏水平方向上的溢出内容 overflow-x: hidden; 5.定义一个元素的宽度和高度之间的比…...

从ET1100迁移到AX58100:我的EtherCAT从站代码需要重写多少?

从ET1100迁移到AX58100&#xff1a;EtherCAT从站代码重构实战指南 当你的产品线需要从百兆升级到千兆EtherCAT网络&#xff0c;或者要支持时间敏感网络(TSN)功能时&#xff0c;从经典的ET1100切换到AX58100几乎是必然选择。但作为经历过完整迁移周期的开发者&#xff0c;我必须…...

LangChain实战避坑:我的RAG项目为什么召回结果不准?从向量化到混合检索的调优全记录

LangChain实战调优&#xff1a;从召回失败到精准检索的完整解决方案 当你的RAG系统在回答"夏天旅行推荐"时&#xff0c;返回了撒哈拉沙漠海滩和新疆火山口这类荒谬结果&#xff0c;问题可能出在文本分割、嵌入模型或混合检索策略上。本文将分享一套经过实战验证的调优…...

2026年高压电磁阀销售厂家哪家强?口碑好才是真的香

在工业阀门领域&#xff0c;高压电磁阀是许多高难度、复杂工况下的关键设备。随着技术的不断进步和市场需求的增加&#xff0c;选择一家优质的高压电磁阀销售厂家显得尤为重要。本文将从多个维度对比分析几家主要的高压电磁阀生产厂家&#xff0c;并给出实操建议&#xff0c;帮…...

HBuilderX+Android Studio本地离线打包Uniapp安卓Apk全流程解析

1. 为什么需要本地离线打包&#xff1f; 每次用HBuilderX云打包都要排队等半天&#xff1f;项目紧急上线时看着进度条干着急&#xff1f;作为过来人&#xff0c;我太懂这种痛苦了。去年我们团队开发医疗问诊App时&#xff0c;高峰期云打包排队超过2小时&#xff0c;差点耽误版…...

GME-Qwen2-VL-2B-Instruct代码实例:自定义指令前缀‘Find an image that matches...’注入方法

GME-Qwen2-VL-2B-Instruct代码实例&#xff1a;自定义指令前缀‘Find an image that matches...’注入方法 1. 项目背景与价值 在实际的图文匹配场景中&#xff0c;我们经常需要判断一张图片与多个文本描述之间的匹配程度。GME-Qwen2-VL-2B-Instruct作为一个强大的多模态模型…...

如何快速配置TranslucentTB:Windows任务栏美化终极教程

如何快速配置TranslucentTB&#xff1a;Windows任务栏美化终极教程 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想要让Windows任务栏变…...

3分钟上手弹幕盒子:零基础高效制作自定义弹幕的免费工具

3分钟上手弹幕盒子&#xff1a;零基础高效制作自定义弹幕的免费工具 【免费下载链接】danmubox.github.io 弹幕盒子 项目地址: https://gitcode.com/gh_mirrors/da/danmubox.github.io 弹幕盒子是一款专业的在线自定义弹幕生成工具&#xff0c;以轻量化架构设计为核心&a…...

DeTikZify:AI驱动的科研图表代码自动化解决方案

DeTikZify&#xff1a;AI驱动的科研图表代码自动化解决方案 【免费下载链接】DeTikZify Synthesizing Graphics Programs for Scientific Figures and Sketches with TikZ 项目地址: https://gitcode.com/gh_mirrors/de/DeTikZify 一、科研绘图的隐形痛点&#xff1a;我…...

从Android大神到AI先锋!10年程序员血泪转型路,AI工程师高薪秘诀全公开!

一眨眼&#xff0c;我已经工作 10 年了。 在 2022 年以前&#xff0c;我一直相信&#xff0c;在这个行业里&#xff0c;只要技术栈钻得深&#xff0c;比如精通三方框架、熟悉 Android Framework、搞定性能优化&#xff0c;就能端稳饭碗。 但从 2023 年开始&#xff0c;一切都变…...

seo排名大师软件好用吗

SEO排名大师软件好用吗&#xff1f;深入解析其优缺点 在当今数字化营销的环境中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已成为网站提升流量、吸引潜在客户的重要手段。而SEO排名大师软件作为一种工具&#xff0c;是否真的能帮助我们实现目标&#xff1f;本文将深…...