创建投屏服务
子程序名 | 返回值 | 备注 |
---|---|---|
E_创建投屏服务 | 逻辑型 |
示例
.如果 (E_创建投屏服务())
调试输出 ("创建成功")
.否则
调试输出 ("创建失败")
.如果结束
提示
全局命令,请勿重复操作此命令。不使用时,务必要销毁释放资源。
销毁投屏服务
子程序名 | 返回值 | 备注 |
---|---|---|
E_销毁投屏服务 | 释放资源占用 |
提示
销毁释放占用资源,所有操作都将无法使用。推荐在软件关闭时使用此命令
投屏初始化
子程序名 | 返回值 | 备注 |
---|---|---|
投屏初始化 | 逻辑型 | 初始化投屏服务 |
参数名 | 类型 | |
设备标识 | 文本型 | 手机设备标识符 ADB命令获取 |
示例
.如果 ( 安卓投屏类.投屏初始化("emulator-5554") )
调试输出 ( "初始化成功" )
.否则
调试输出 ("初始化失败" + " " + "错误描述:" + 安卓投屏类.取错误描述())
.如果结束
提示
“初始化失败” 可通过模块命令 " 安卓投屏类.取错误描述() " 查看失败原因
注意
投屏初始化基于ADB操作,必须保证ADB已启动,且正常连接设备!
启动投屏
子程序名 | 返回值 | 备注 |
---|---|---|
启动投屏 | 逻辑型 | 需先初始化,在启动投屏 |
参数名 | 类型 | |
分辨率 | 整数型 | 例 640 720 1080 1280 1920 0原始比例 |
比特率 | 整数型 | 1-100 越高越清晰 |
帧数 | 整数型 | 帧/秒 推荐10-30帧 |
分辨率
-- 不能低于320 可使用常量(#屏幕分辨率_720)比特率
--可使用常量(#屏幕比特_2000000)帧数
--可使用常量(#屏幕帧率_30)
示例
.如果 ( 安卓投屏类.启动投屏 ( #屏幕分辨率_720, #屏幕比特_2000000, #屏幕帧率_快速))
调试输出 ("启动投屏成功")
.否则
调试输出 ("启动投屏失败", "错误描述:" + 安卓投屏类.取错误描述() )
.如果结束
注意
分辨率、比特率、帧数参数数值越高,暂用资源越大,要求电脑配置越高。请谨慎设置。
暂停投屏
子程序名 | 返回值 | 备注 |
---|---|---|
暂停投屏 | ||
参数名 | 类型 | |
暂停 | 逻辑型 | 真:暂停投屏 假:开启投屏 |
示例
安卓投屏类.暂停投屏(真)
提示
根据需求暂停投屏,可降低资源占用
停止投屏
子程序名 | 返回值 | 备注 |
---|---|---|
停止投屏 | 断开手机一切连接 |
示例
安卓投屏类.停止投屏()
注意
需要时间处理线程,需给予充足时间
关闭副屏幕
子程序名 | 返回值 | 备注 |
---|---|---|
关闭副屏幕 | 关闭副屏幕,主屏幕渲染恢复正常 |
示例
安卓投屏类.关闭副屏幕()
置渲染ID
子程序名 | 返回值 | 备注 |
---|---|---|
置渲染ID | 设置渲染ID | |
参数名 | 类型 | |
渲染ID | 整数型 | 单台设备可不用设置,默认渲染ID为0 |
示例
安卓投屏类.置渲染ID(1)
提示
渲染ID作用于投屏操作多台设备,分配每台设备序号,异常断开回调根据序号处理断开事件。
置断开回调
子程序名 | 返回值 | 备注 |
---|---|---|
置断开回调 | 手机设备异常断开通知 需设置渲染ID | |
参数名 | 类型 | |
回调地址 | 整数型 |
回调程序
参数一: 渲染id
{整数型} -- 与置渲染ID相对应参数二: 错误信息
{文本型} -- 断开错误信息
示例
安卓投屏类.置断开回调( 到整数(&断开回调) )
置附加参数
子程序名 | 返回值 | 备注 |
---|---|---|
置附加参数 | 备注信息 | |
参数名 | 类型 | |
参数一 | 整数型 |
示例
安卓投屏类.置附加参数(10)
//如果设置文本型可用模块里的命令
安卓投屏类.置附加参数(E_内存_写内存文本("附加参数"))
置主屏幕场景
子程序名 | 返回值 | 备注 |
---|---|---|
置主屏幕场景 | 逻辑型 | 设置主渲染场景 |
参数名 | 类型 | |
场景句柄 | 整数型 | 组件句柄 |
组件宽 | 整数型 | 渲染组件宽 |
组件高 | 整数型 | 渲染组件高 |
组件方向 | 整数型 | HOME键方向 |
是否缩放 | 逻辑型 | 根据实际渲染组件高宽进行缩放, |
组件方向
-- 可使用常量(#屏幕方向_Home下方)是否缩放
-- 缩放可减轻渲染压力
示例
.如果 ( 安卓投屏类.置主屏幕场景 (取窗口句柄(), 画板1.宽度, 画板1.高度, #屏幕方向_Home下方,真))
调试输出 ("设置主屏幕成功")
.否则
调试输出 ("设置主屏幕失败","错误描述:" + 安卓投屏类.取错误描述())
.如果结束
提示
屏幕可360°旋转,旋转方向由下向左旋转,0 90 180 270 360(0),HOME键为准!
置副屏幕场景
子程序名 | 返回值 | 备注 |
---|---|---|
置副屏幕场景 | 逻辑型 | 设置副渲染场景 |
参数名 | 类型 | |
场景句柄 | 整数型 | 组件句柄 |
组件宽 | 整数型 | 组件宽度 |
组件高 | 整数型 | 组件高度 |
组件方向 | 整数型 | HOME键方向 |
是否缩放 | 逻辑型 | 根据实际渲染组件高宽进行缩放 |
是否同步 | 逻辑型 | 主副屏幕是否同步 |
竖屏图片 | 字节集 | 如果不同步,可设置主屏幕显示图片 |
横屏图片 | 字节集 | 如果不同步,可设置主屏幕显示图片 |
组件方向
--可使用常量(#屏幕方向_Home下方)是否缩放
--缩放可减轻渲染压力
示例
.如果 ( 安卓投屏类.置副屏幕场景 (取窗口句柄(), 画板1.宽度, 画板1.高度, #屏幕方向_Home下方,假,真,,))
调试输出 ("设置副屏幕成功")
.否则
调试输出 ("设置副屏幕失败","错误描述:" + 安卓投屏类.取错误描述())
.如果结束
提示
如设置同步,图片设置无效。
设置不同步,可自定义展示图片,也可留空使用默认图片。
坐标计算
子程序名 | 返回值 | 备注 |
---|---|---|
坐标计算 | 组件坐标转手机实际坐标 | |
参数名 | 类型 | |
横向位置 | 整数型 | |
纵向位置 | 整数型 | |
组件宽 | 整数型 | |
组件高 | 整数型 | |
组件方向 | 整数型 | HOME键方向 |
组件方向
--可使用常量(#屏幕方向_Home下方)
示例
//如果需要发送手机屏幕实际坐标,组件宽高填写手机分辨率
坐标 = 安卓投屏类.坐标计算(横向位置, 纵向位置, 画板1.宽度, 画板1.高度, #屏幕方向_Home下)
安卓投屏类.模拟按下 (0, 坐标.x, 坐标.y)
安卓投屏类.模拟放开 (0, 坐标.x, 坐标.y)
提示
组件方向并非手机HOME键实际方向。 而是组件渲染显示方向
例:手机HOME键向下竖屏,你希望渲染时HOME键向左 90° 横向显示。 那么需要填写:#屏幕方向_Home左方 ,根据显示方向,计算出实际坐标
模拟按下
子程序名 | 返回值 | 备注 |
---|---|---|
模拟按下 | 模拟手指按下动作 | |
参数名 | 类型 | |
id | 整数型 | 多指操作使用,如不使用多指操作,可填写 0 |
坐标x | 整数型 | |
坐标y | 整数型 |
示例
//如果需要发送手机屏幕实际坐标,组件宽高填写手机分辨率
G_按下=真
坐标 = 安卓投屏类.坐标计算 (横向位置, 纵向位置, 画板1.宽度, 画板1.高度, #屏幕方向_Home下)
安卓投屏类.模拟按下 (0, 坐标.x, 坐标.y)
提示
滑动屏幕正常操作应该是:先按下,在滑动。 所以这里赋值一个变量 "G_按下"给模拟移动做判断
模拟放开
子程序名 | 返回值 | 备注 |
---|---|---|
模拟放开 | 模拟手指放开动作 | |
参数名 | 类型 | |
id | 整数型 | 多指操作使用,如不使用多指操作,可填写 0 |
坐标x | 整数型 | |
坐标y | 整数型 |
示例
G_按下=假
坐标 = 安卓投屏类.坐标计算 (横向位置, 纵向位置, 画板1.宽度, 画板1.高度, #屏幕方向_Home下)
安卓投屏类.模拟放开 (0, 坐标.x, 坐标.y)
提示
按键放开则无法滑动,所以这里赋值一个变量 "G_按下=假"给模拟移动做判断
模拟移动
子程序名 | 返回值 | 备注 |
---|---|---|
模拟移动 | 模拟手指移动动作 | |
参数名 | 类型 | |
id | 整数型 | 多指操作使用,如不使用多指操作,可填写 0 |
坐标x | 整数型 | |
坐标y | 整数型 |
示例
G_滚动起始坐标 = E_坐标 (x,y)
.如果真(G_按下)
坐标 = 安卓投屏类.坐标计算 (横向位置, 纵向位置, 画板1.宽度, 画板1.高度, #屏幕方向_Home下)
安卓投屏类.模拟移动 (0, 坐标.x, 坐标.y)
.如果真结束
注意
易语言组件滚动事件没有坐标参数,所以这里记录鼠标移动位置,作为滚动事件的起始坐标
滑动手机屏幕正常操作,按下-》滑动-》放开, 所以需判断是否按下。
模拟滚动
子程序名 | 返回值 | 备注 |
---|---|---|
模拟滚动 | 模拟手指上下滚动动作 | |
参数名 | 类型 | |
起始坐标x | 整数型 | |
起始坐标y | 整数型 | |
滚动距离 | 整数型 | 滚动距离 |
示例
//判断一下起始滚动起始坐标是否大于0
.如果真 (G_滚动起始坐标.X > 0 且 G_滚动起始坐标.Y > 0)
坐标 = 安卓投屏类.坐标计算 (G_滚动起始坐标.X, G_滚动起始坐标.Y, 画板1.宽度, 画板1.高度, #屏幕方向_Home下)
安卓投屏类.模拟滚动 (坐标.X, 坐标.Y, 滚动距离)
.如果真结束
按键按下
子程序名 | 返回值 | 备注 |
---|---|---|
按键按下 | 模拟键盘按下某键 | |
参数名 | 类型 | |
键码 | 整数型 | keyCode |
功能键 | 整数型 | Ctrl、Shift、Alt |
大小写状态 | 逻辑型 | 键盘大小写锁状态 |
键码
--组件按下某键事件--参数"键码"功能键
--组件按下某键事件--参数"功能键状态"大小写状态
--可用模块里的“E_系统_大小写锁 ()
”获取.
示例
//判断是否按下了 CapsLock大小写按键,如果启动程序时大小写状态为真,这时按下大小写键为假。
.如果真 (键代码 = #CapsLock键)
.如果 (大小写锁)
大小写锁 = 假
.否则
大小写锁 = 真
.如果结束
.如果真结束
.如果真 (功能键状态 = #Ctrl键状态 且 键代码 = #V键) // “粘贴命令放在按下事件里”
安卓投屏类.粘贴数据 (取剪辑板文本 ())
.如果真结束
安卓投屏类.按键按下 (键代码, 功能键, 大小写锁)
提示
启动程序时,可调用模块里的命令获取当前大小写锁状态。 大小写锁 = E_系统_大小写锁 ()
内部会通过Keycode
键码转换为安卓 Android Keycode
。
按键放开
子程序名 | 返回值 | 备注 |
---|---|---|
按键放开 | 模拟键盘放开某键 | |
参数名 | 类型 | |
键码 | 整数型 | keyCode |
功能键 | 整数型 | Ctrl、Shift、Alt |
大小写状态 | 逻辑型 | 键盘大小写锁状态 |
键码
--组件放开某键事件--参数键码
功能键
--组件放开某键事件--参数功能键状态
大小写状态
--可用模块里的“E_系统_大小写锁 ()
”获取.
示例
//大小写锁:在按键按下时 已赋值真假状态。所以这里不用判断或获取、赋值
安卓投屏类.按键放开 (键代码, 功能键, 大小写锁)
提示
在启动程序时已获取过一次大小写锁状态,无需重复获取。
发送命令
子程序名 | 返回值 | 备注 |
---|---|---|
发送命令 | 发送手机功能命令 | |
参数名 | 类型 | |
命令 | 整数型 | 可在模块常量查询手机命令 #安卓_ |
动作 | 整数型 | 0为按下弹起 1为按下 2为弹起 |
示例
安卓投屏类.发送命令 (#安卓_按键Home, 0)
提示
可在模块常量查询命令:例如 安卓_按键Home 安卓_返回键 安卓_菜单键 安卓_电源键等等
粘贴数据
子程序名 | 返回值 | 备注 |
---|---|---|
粘贴数据 | 电脑剪辑板文本粘贴至手机 | |
参数名 | 类型 | |
数据 | 文本型 | 支持中英文 |
示例
.如果真 (功能键状态 = #Ctrl键状态 且 键代码 = #V键)
安卓投屏类.粘贴数据 (取剪辑板文本 ())
.如果真结束
安卓投屏类.按键按下 (键代码, 功能键, m_大小写锁)
推荐
粘贴命令放在按下事件里
屏幕息屏
子程序名 | 返回值 | 备注 |
---|---|---|
屏幕息屏 | 手机屏幕休眠,投屏不休眠 |
示例
安卓投屏类.屏幕息屏()
屏幕唤醒
子程序名 | 返回值 | 备注 |
---|---|---|
屏幕唤醒 | 手机屏幕唤醒 |
示例
安卓投屏类.屏幕唤醒()
下拉通知栏
子程序名 | 返回值 | 备注 |
---|---|---|
下拉通知栏 | 屏幕顶部通知信息 |
示例
安卓投屏类.下拉通知栏()
下拉设置栏
子程序名 | 返回值 | 备注 |
---|---|---|
下拉设置栏 | 屏幕顶部设置栏 |
示例
安卓投屏类.下拉设置栏()
旋转屏幕
子程序名 | 返回值 | 备注 |
---|---|---|
旋转屏幕 | 改变屏幕状态 部分手机不支持 |
示例
安卓投屏类.旋转屏幕()
更新比特率
子程序名 | 返回值 | 备注 |
---|---|---|
更新比特率 | 逻辑型 | 设置更新比特率 |
参数名 | 类型 | |
比特率 | 整数型 | 1-100 越高越清晰 |
比特率
--- 可用常量( #屏幕比特_200000)
示例
.如果 ( 安卓投屏类.更新比特率 (#屏幕比特_2000000))
调试输出 (“更新成功”)
.否则
调试输出 (“更新失败”)
.如果结束
注意
更新需要时间,请给予充足时间等待
模块并没有使用处理事件,不推荐在主线程下使用,防止卡顿。
更新分辨率
子程序名 | 返回值 | 备注 |
---|---|---|
更新分辨率 | 逻辑型 | 置更新画面分辨率 |
参数名 | 类型 | |
分辨率 | 整数型 | 例 640 720 1080 1280 1920 0原始比例 |
分辨率
--- 不能低于320 , 可用常量( #屏幕分辨率_720)
示例
.如果 ( 安卓投屏类.更新分辨率(#屏幕分辨率_720))
调试输出 (“更新成功”)
.否则
调试输出 (“更新失败”)
.如果结束
注意
更新需要时间,请给予充足时间等待
模块并没有使用处理事件,不推荐在主线程下使用,防止卡顿。
更新帧数
子程序名 | 返回值 | 备注 |
---|---|---|
更新帧数 | 逻辑型 | 设置更新帧数 |
参数名 | 类型 | |
帧数 | 整数型 | 帧/秒 推荐10-30帧 |
帧数
--- 最大60 , 可用常量( #屏幕帧率_快速)
示例
.如果 ( 安卓投屏类.更新帧数 (#屏幕帧率_快速) )
调试输出 (“更新成功”)
.否则
调试输出 (“更新失败”)
.如果结束
注意
更新需要时间,请给予充足时间等待
模块并没有使用处理事件,不推荐在主线程下使用,防止卡顿。
更新画面配置
子程序名 | 返回值 | 备注 |
---|---|---|
更新画面配置 | 逻辑型 | 设置更新画面质量 |
参数名 | 类型 | |
分辨率 | 整数型 | 例 640 720 1080 1280 1920 0=原始分辨率 |
比特率 | 整数型 | 1-100 越高越清晰 |
帧数 | 整数型 | 帧/秒 推荐10-30帧 最大60 |
分辨率
-- 不能低于320 , 可用常量( #屏幕分辨率_720)比特率
-- 可用常量( #屏幕比特_2000000)帧数
-- 最大60 , 可用常量( #屏幕帧率_快速)
示例
安卓投屏类.更新画面配置(#屏幕分辨率_720,#屏幕比特_2000000,#屏幕帧率_快速)
注意
更新需要时间,请给予充足时间等待
模块并没有使用处理事件,不推荐在主线程下使用,防止卡顿。
更新主屏幕尺寸
子程序名 | 返回值 | 备注 |
---|---|---|
更新主屏幕尺寸 | ||
参数名 | 类型 | |
组件宽 | 整数型 | 新宽度 |
组件高 | 整数型 | 新高度 |
组件方向 | 整数型 | HOME键方向 |
组件方向
---可用常量 ( #屏幕方向_Home下方)
示例
安卓投屏类.更新主屏幕尺寸( 画板1.宽度, 画板1.高度, #屏幕方向_Home下方)
注意
组件尺寸有变化,及时更新尺寸,防止渲染出错。
模块并没有使用处理事件,不推荐在主线程下使用,防止卡顿。
更新副屏幕尺寸
子程序名 | 返回值 | 备注 |
---|---|---|
更新副屏幕尺寸 | ||
参数名 | 类型 | |
组件宽 | 整数型 | 新宽度 |
组件高 | 整数型 | 新高度 |
组件方向 | 整数型 | HOME键方向 |
组件方向
---可用常量 ( #屏幕方向_Home下方)
示例
安卓投屏类.更新副屏幕尺寸( 宽度, 高度, #屏幕方向_Home下方)
注意
组件尺寸有变化,及时更新尺寸,防止渲染出错。
模块并没有使用处理事件,不推荐在主线程下使用,防止卡顿。
保存图片
子程序名 | 返回值 | 备注 |
---|---|---|
保存图片 | 逻辑型 | 手机截屏保存 |
参数名 | 类型 | |
路径 | 文本型 | 图片保存路径,尽量不要有中文和空格 |
格式 | 整数型 | 0 - PNG 1 - BMP |
质量 | 整数型 | 1-100 越高越清晰 图片越大 |
示例
安卓投屏类.截取屏幕 (“D:\11.png”,0,60)
取帧图片数据
子程序名 | 返回值 | 备注 |
---|---|---|
取帧图片数据 | 字节集 | 获取屏幕图片数据 |
参数名 | 类型 | |
格式 | 整数型 | 0=PNG 1=BMP |
- 解码器取出一帧H264数据 ,不支持多线程取图
示例
图片框1.图片 = 安卓投屏类.取帧图片数据(0)
注意
获取失败返回{}空字节
取渲染图片数据
子程序名 | 返回值 | 备注 |
---|---|---|
取渲染图片数据 | 字节集 | 获取屏幕图片数据, |
参数名 | 类型 | |
格式 | 整数型 | 0 - PNG 1 - JPG 2 - BMP |
- 渲染器取出一帧数据 , 支持多线程取图
示例
图片框1.图片 = 安卓投屏类.取渲染图片数据 (0)
注意
获取失败返回{}空字节
取帧宽高
子程序名 | 返回值 | 备注 |
---|---|---|
取帧宽高 | 逻辑型 | 解码器取出一帧H264数据的宽高 |
参数名 | 类型 | |
宽度 | 整数型 | 参考值 |
高度 | 整数型 | 参考值 |
示例
安卓投屏类.取帧宽高 (_宽度,_高度)
调试输出(_宽度,_高度)
取渲染宽高
子程序名 | 返回值 | 备注 |
---|---|---|
取渲染宽高 | 逻辑型 | 渲染器取出一帧宽高 |
参数名 | 类型 | |
宽度 | 整数型 | |
高度 | 整数型 |
示例
安卓投屏类.取渲染宽高 (_宽度,_高度)
调试输出(_宽度,_高度)
取屏幕方向
子程序名 | 返回值 | 备注 |
---|---|---|
取屏幕方向 | 整数型 | 成功返回方向 1=竖 2=横 错误返回 -1 |
示例
_方向 = 安卓投屏类.取屏幕方向 ()
.判断开始 (_方向 = #屏幕状态_竖屏)
调试输出 (“竖屏”)
.判断 (_方向 = #屏幕状态_横屏)
调试输出 (“横屏”)
.默认
.判断结束
取渲染ID
子程序名 | 返回值 | 备注 |
---|---|---|
取渲染ID | 整数型 | 成功返回数据 错误返回 -1 |
示例
局_渲染ID = 安卓投屏类.取渲染ID()
取附加参数
子程序名 | 返回值 | 备注 |
---|---|---|
取附加参数 | 整数型 | 成功返回数据 错误返回 -1 |
示例
局_附加参数整数型 = 安卓投屏类.取附加参数()
//如果是文本型附加参数 可通过模块命令获取
局_附加参数文本型 = E_内存_读内存文本( 安卓投屏类.取附加参数())
取错误描述
子程序名 | 返回值 | 备注 |
---|---|---|
取错误描述 | 文本型 | 成功返回数据 错误返回 " " |
示例
调试输出("错误描述:"+ 安卓投屏类.取错误描述())
提示
如果命令执行失败,可通过此命令查看错误描述
同步剪辑版
子程序名 | 返回值 | 备注 |
---|---|---|
同步剪辑版 | 自动同步手机剪辑版文本内容到电脑剪辑版 | |
参数名 | 类型 | |
是否同步 | 逻辑型 | 默认不同步 |
示例
安卓投屏类.同步剪辑版(真)
重画
子程序名 | 返回值 | 备注 |
---|---|---|
重画 | 投屏数据重画 |
示例
安卓投屏类.重画()
提示
推荐窗口 WM_PAINT消息 重画