未提供项目描述
项目描述
IP远程
三星电视 IP 遥控器
- 所有功劳均归功于他人的先前工作。
- 代码来源请参考:
- https://github.com/kdschlosser/samsungctl。
IPRemote 是一个库和命令行工具,用于通过 TCP/IP 连接远程控制三星电视。它目前支持具有以太网或 Wi-Fi 连接的 2008+ 电视。这包括 H 和 J 年型号电视以及具有使用基于 SSL 的 websocket 连接的最新三星固件的电视。
在所有电视上,系统都会提示您接受连接,此提示会显示在电视上。在它出错之前,您将有 30 秒的时间来执行此操作。对此略有不同,在 2014 年和 2015 年的电视(H 和 J)上,电视上将显示一个引脚,当提示您在您的 PC 上时必须输入该引脚。
依赖项
Python 2.7+websocket-clientrequestspycryptodomelxmlifaddrsixcurses(可选,用于交互模式)
安装
首选:
pip install ipremote
使用下载的代码:
setup.py install
使用下载的代码,也可以在不安装的情况下使用命令行工具:
python -m IPRemote
命令行使用
您可以使用IPRemote命令将密钥发送到电视:
IPRemote --host <host> [options] <key> [key ...]
host是电视的主机名或 IP 地址。key是一个关键代码,例如KEY_VOLDOWN(见关键代码)。
还有一个交互模式(ncurses)用于发送按键:
IPRemote --host <host> [options] --interactive
用于IPRemote --help获取有关命令行参数的更多信息:
usage: IPRemote [-h] [--version] [-v] [-q] [-i] [--host HOST] [--port PORT]
[--method METHOD] [--name NAME] [--description DESC]
[--id ID] [--token TOKEN] [--timeout TIMEOUT]
[--volume VOLUME] [--mute MUTE] [--brightness BRIGHTNESS]
[--contrast CONTRAST] [--sharpness SHARPNESS]
[--source SOURCE] [--source-label SOURCE_LABEL]
[--config-file PATH/FILENAME]
[--start-app APP NAME OR ID] [--app-metadata METADATA]
[--key-help]
[key [key ...]]
Remote control Samsung televisions via TCP/IP connection
positional arguments:
key [keys to be sent (e.g. KEY_VOLDOWN)]
参数分解:
| 可选参数 | 描述 |
|---|---|
| -h,--帮助 | 显示此帮助信息并退出 |
| - 版本 | 显示程序的版本号并退出 |
| -v,--详细 | 增加输出详细程度 |
| -q,--安静 | 抑制非致命输出 |
| -i,--交互式 | 交互控制 |
| --host 主机 | 电视主机名或 IP 地址 |
| --port 端口 | 电视端口号 (TCP) |
| --method 方法 | 连接方法(legacy 或 websocket) |
| --name 名称 | 遥控器名称 |
| --description DESC | 遥控器说明 |
| --id 标识 | 遥控器标识 |
| --token 代币 | 2014-2015 年电视和一些 2016 年当前电视使用的身份验证令牌 |
| --timeout 超时 | 以秒为单位的套接字超时(0 = 无超时) |
| --volume 音量 | 设置音量允许值:0-100 或 -1 以打印音量 |
| --静音静音 | 设置静音。允许值:开、关、状态。state 打印静音状态 |
| --brightness 亮度 | 设置亮度允许值:0-100 或 -1 打印亮度 |
| --对比度 对比度 | 设置对比度允许值:0-100 或 -1 以打印对比度 |
| --sharpness 锐度 | 设置锐度允许值:0-100 或 -1 打印锐度 |
| --source SOURCE | 设置源。您可以使用电视定义的名称.. HDMI1、HDMI2、PC、USB... 或者您可以使用显示在 OSD 上的编程标签。 |
| --source-label SOURCE_LABEL | 设置显示在 OSD 上的源标签 |
| --config-file 路径/文件名 | 配置文件的路径和文件名 *有关更多信息,请参见下文 |
| --start-app 应用程序名称或 ID | 启动应用程序 |
| --app-元数据元数据 | 应用程序启动时可以使用的信息字符串。例如浏览器。要将其直接打开到特定的 URL,您将输入:"http\/\/www.some-web-address.com"将元数据括在引号中将减少命令行解析器错误的可能性。 |
| --key-help {可选键} | 打印出关键帮助 |
示例使用:
IPRemote --host 192.168.0.10 --name myremote KEY_VOLDOWN
要获取所有已知密钥的列表:
IPRemote --help-keys
您还可以获得有关特定键的帮助:
IPRemote --key-help KEY_16_9
或者,如果您想列出多个键:
IPRemote --key-help KEY_16_9 KEY_TTX_MIX
--配置文件
如果这是您第一次在电视上使用此库,则必须为您希望执行的命令指定 --host 和密钥代码以及此参数。
IPRemote --host 192.168.1.100 --config-file "/PATH/FILE.NAME" KEY_MENU
通过这样做,它将为您的电视进行所有必要的配置文件设置。库将命令发送到您的电视后,它将保存文件。之后的任何调用都只需要 --config-file PATH/FILENAME 以及您希望为命令行选项执行的命令。
IPRemote --config-file "/PATH/FILE.NAME" KEY_MENU
所有其他信息将从文件中检索。
******************
depreciated
***************
可以从配置文件中加载设置。该文件是从
$XDG_CONFIG_HOME/IPRemote.conf~/.config/IPRemote.conf/etc/IPRemote.conf
按照这个顺序。一个简单的默认配置与源捆绑为
IPRemote.conf <IPRemote.conf>
图书馆使用
IPRemote 也可以用作 python 包。
import IPRemote
Remote可以使用以下with语句构造上下文管理的远程控制器类对象:
with IPRemote.Remote(config) as remote:
# Use the remote object
配置类
有一个类可以处理所有的配置信息。它使保存和加载配置数据变得更加容易。
import IPRemote
config = IPRemote.Config(
name='IPRemote',
description='IPRemote-library',
method='websocket',
port=8001
)
Config 类的构造函数采用以下参数:
| 参数名称 | 默认值 | 参数类型 | 利用 |
|---|---|---|---|
| 姓名 | "IPRemote" |
str |
“遥控器”的名称这是将出现在电视上的名称 |
| 描述 | 本地 PC 的主机名 | str |
仅用于旧版连接(2014 年之前的电视) |
| 主持人 | None |
str |
电视的ip地址"192.168.1.1" |
| 港口 | None |
int |
要连接的端口。选择是 55000 (< 2014)、8080 (2014 & 2015)、8001 & 8002 (>= 2016) 或None* |
| 方法 | None |
str |
连接方法(、"legacy"或"websocket"* )"encrypted"None |
| ID | None |
str |
这是您可以设置的标识符。当使用“加密”方法时,这应该被忽略 |
| 暂停 | 0 |
int |
套接字超时,仅用于遗留方法 |
| 令牌 | None |
str |
用于 2014 和 2015 以及一些 2016+ 电视的身份验证令牌 |
| 设备ID | None |
str |
内部使用 |
| upnp_locations | None |
list |
未来使用 |
| 苹果电脑 | None |
str |
电视的 MAC 地址"00:00:00:00:00"或None**。 |
* 检测系统会自动检测要使用的连接类型和端口。为了让检测系统激活端口,调用 Config 中的方法参数必须是None.
**mac如果您使用的是旧版连接,则不必使用配置类中的参数,<= 2013 TV。如果您使用的是 2014 年及更新版本的电视,如果没有 mac 地址,则开机功能将无法使用。如果您未指定 MAC 地址且电视为 2014 或更新版本,程序将尝试为您获取电视的 MAC 地址。为了成功,您需要打开电视。save如果您使用该方法保存配置数据,则此过程只需执行一次。如果由于某种原因我们无法找到电视的 MAC 地址,您可以选择手动将其传递给对 Config 的调用。如果您手动输入,则需要对其进行格式化"00:00:00:00:00"。
这是一个使用所有已激活检测功能运行 IPRemote 的 Python 脚本示例,记住要使其正常工作,您需要打开电视电源。由于我们只想执行一次此过程(因为它可能需要额外的一两秒),我们希望将配置信息保存到文件中。所以一定要在保存方法中输入路径和文件名。
import IPRemote
config = IPRemote.Config(host='192.168.1.100')
with IPRemote.Remote(config) as remote:
remote.KEY_MENU()
config.save('PATH/FILE.NAME')
Config 类也是您设置日志记录级别的地方
import logging
import IPRemote
config = IPRemote.Config(
name='IPRemote',
method='websocket',
host='192.168.1.100'
)
config.log_level = logging.DEBUG
有两种方法可以保存和加载配置文件。
import IPRemote
config = IPRemote.Config.load('path/to/save/file')
如果您加载文件,则会保存路径,因此您可以调用 save 来保存任何新数据。如果您手动构建了 Config 类,则需要在调用 save 时传递路径。然后保存该路径,因此任何后续的保存调用都不需要您传递路径
import IPRemote
config = IPRemote.Config(
name='IPRemote',
description='IPRemote-library',
method='websocket',
host='192.168.1.100'
)
config.save('path/to/save/file')
调用 save 时,如果您只传递文件夹路径而不是文件夹/文件路径,则传递给构造函数的名称将与扩展名“.config”一起使用。
您不需要跟踪配置实例。一旦它被传递给 Remote 构造函数,它就会存储在该实例中。
import IPRemote
config = IPRemote.Config.load('path/to/save/file')
远程 = IPRemote 。远程(配置)
远程。配置。保存()
交替,
import IPRemote
config = IPRemote.Config.load('PATH/FILE.NAME')(
name='IPRemote',
description='IPRemote-library',
method='websocket',
host='192.168.1.100'
)
config.save()
只需要一个配置设置例程。
- 如果文件存在,则使用它。
- 如果您碰巧只指定了一个目录并希望 IPRemote 使用 name 参数作为文件名,这就是使之成为可能的原因。
- 如果路径不存在,那么它将使用提供的参数创建一个新配置并保存该配置数据。
您仍然可以将字典传递给 Remote 构造函数。
******************
depreciated
***************
构造函数将配置字典作为参数。必须指定所有配置项。
| 钥匙 | 类型 | 描述 |
|---|---|---|
| 主持人 | 细绳 | 电视的主机名或 IP 地址。 |
| 港口 | 整数 | TCP 端口号。(默认: 55000) |
| 方法 | 细绳 | 连接方式("legacy"或"websocket") |
| 姓名 | 细绳 | 遥控器名称。 |
| 描述 | 细绳 | 遥控器说明。 |
| ID | 细绳 | 附加遥控器 ID。 |
| 令牌 | 细绳 | 身份验证令牌 |
| 暂停 | 整数 | 以秒为单位的超时。0表示没有超时。 |
电源属性
电源状态以及关闭和打开 2014+ 电视的电源状态
import IPRemote
config = IPRemote.Config.load('path/to/save/file')
远程 = IPRemote 。远程(配置)
打印(远程。电源)
#远程打开电视。功率 = 真
print ( remote.power ) #远程关闭电视。功率=假
# 切换电源
遥控器。电源 = 不 远程。力量
我们无法打开 2014 年以前的电视。
例外
当出现问题时,您将收到异常:
| 例外 | 描述 |
|---|---|
| 三星电视错误 | 三星电视异常基类。 |
| 拒绝访问 | 连接被拒绝。 |
| 连接关闭 | 连接已关闭。 |
| 未处理的响应 | 收到未知回复。 |
| 未找到电视 | 找不到电视。 |
| 配置错误 | 配置异常的基类。 |
| ConfigUnknownMethod | 未知的连接方法。 |
| 配置解析错误 | 配置数据不是 json 格式或不是格式化的平面文件。 |
| 配置加载错误 | 找不到指定的配置路径。 |
| 配置保存路径错误 | 配置保存路径无效。 |
| 配置保存错误 | 保存配置时出错。 |
| ConfigSavePathNotSpecified | 未指定配置保存路径。 |
| 配置参数错误 | 参数不是配置参数。 |
示例程序
这个简单的程序会打开和关闭菜单几次。
import IPRemote
import time
config = IPRemote.Config(
name='IPRemote',
method='legacy',
host='192.168.1.100'
)
with IPRemote.Remote(config) as remote:
for i in range(10):
remote.control("KEY_MENU")
time.sleep(0.5)
鼠标控制
鼠标控制只能通过使用 IPRemote 作为 python 模块来完成。鼠标命令是内置的。这样,您可以在单个“命令”中完成多个动作,并且可以存储动作集以供以后使用。根据完成一次运动(行进距离)所需的时间,您需要在每次运动之间插入一个等待时间。
import IPRemote
config = IPRemote.Config(
name='IPRemote',
method='websocket',
host='192.168.1.100'
)
with IPRemote.Remote(config) as remote:
mouse = remote.mouse
mouse.move(x=100, y=300)
mouse.wait(0.5)
mouse.left_click()
mouse.run()
mouse.clear()
这是线程安全的,因此一次只能运行一个鼠标命令集。如果您的鼠标在一个线程中运行并且您需要停止另一个线程的移动,或者您只是想优雅地终止程序,您可以调用mouse.stop()
import IPRemote
import time
config = IPRemote.Config(
name='IPRemote',
method='websocket',
host='192.168.1.100'
)
with IPRemote.Remote(config) as remote:
mouse = remote.mouse
def move_mouse(_x, _y):
mouse.move(x=x, y=y)
start = time.time()
mouse.run()
stop = time.time()
print('x:', x, 'y:', y, 'time:', (stop - start) * 1000)
mouse.clear()
mouse.move(x=-x, y=-y)
mouse.run()
mouse.clear()
for x in range(1920):
move_mouse(x, 0)
for y in range(1080):
move_mouse(0, y)
move_mouse(x, y)
语音识别
如果您的电视支持语音识别,则您可以在电视上启动和停止语音识别服务。这只能通过将 IPRemote 库用作现有程序的包来完成。如何执行此操作的示例代码如下。
import IPRemote
import time
config = IPRemote.Config(
name='IPRemote',
method='websocket',
host='192.168.1.100'
)
with IPRemote.Remote(config) as remote:
remote.start_voice_recognition()
time.sleep(5.0)
remote.stop_voice_recognition()
应用
以下是如何访问电视上的应用程序的示例。
import IPRemote
config = IPRemote.Config(
name='IPRemote',
method='websocket',
host='192.168.1.100'
)
with IPRemote.Remote(config) as remote:
for app in remote.applications:
print('name:', app.name)
print('=' * 30)
print('id:', app.app_id)
print('is running:', app.is_running)
print('version:', app.version)
print()
如果您想通过名称或应用程序 ID 访问特定应用程序。
import IPRemote
config = IPRemote.Config(
name='IPRemote',
method='websocket',
host='192.168.1.100'
)
with IPRemote.Remote(config) as remote:
app = remote.get_application('YouTube')
if app is not None:
print('name:', app.name)
print('=' * 30)
print('id:', app.app_id)
print('is running:', app.is_running)
print('version:', app.version)
print()
以下是应用程序的可用属性
- is_lock
- 姓名
- app_type
- 位置
- app_id
- 启动器类型
- mbr_index
- source_type_num
- 图标
- ID
- mbr_source
- 动作类型
- 版本
- is_visible
- 在跑
我们还可以针对任何内容组迭代应用程序,然后我们可以针对该组中的可用内容迭代内容组。
import IPRemote
config = IPRemote.Config(
name='IPRemote',
method='websocket',
host='192.168.1.100'
)
with IPRemote.Remote(config) as remote:
for app in remote.applications:
print('name:', app.name)
print('=' * 30)
for content_group in app:
print(' ', content_group.title)
print(' ', '-' * 26)
for content in content_group:
print(' ', content.title)
以下是内容组的可用属性:
- 标题
以下是内容的可用属性:
- is_playable
- 字幕
- app_type
- 标题
- mbr_index
- live_launcher_type
- action_play_url
- 服务标识
- 启动器类型
- source_type_num
- 动作类型
- app_id
- 字幕2
- display_from
- 显示_直到
- mbr_source
- ID
- 字幕3
- 图标
您还可以通过调用应用程序或内容来运行应用run()
程序或内容。
关键代码
这是支持的键码的新列表。
电源键
| 钥匙 | 描述 |
|---|---|
| KEY_POWEROFF | 关机 |
| KEY_POWERON | 打开 |
| KEY_POWER | 电源切换 |
输入键
| 钥匙 | 描述 |
|---|---|
| KEY_SOURCE | 资源 |
| KEY_COMPONENT1 | 组件1 |
| KEY_COMPONENT2 | 组件2 |
| KEY_AV1 | AV1 |
| KEY_AV2 | AV2 |
| KEY_AV3 | AV3 |
| KEY_SVIDEO1 | 视频1 |
| KEY_SVIDEO2 | 视频2 |
| KEY_SVIDEO3 | 视频3 |
| KEY_HDMI | HDMI |
| KEY_HDMI1 | HDMI1 |
| KEY_HDMI2 | HDMI2 |
| KEY_HDMI3 | HDMI3 |
| KEY_HDMI4 | HDMI4 |
| KEY_FM_RADIO | 调频广播 |
| KEY_DVI | DVI |
| KEY_DVR | 硬盘录像机 |
| KEY_TV | 电视 |
| KEY_ANTENA | 模拟电视 |
| KEY_DTV | 数字电视 |
数字键
| 钥匙 | 描述 |
|---|---|
| KEY_1 | 键1 |
| KEY_2 | 键2 |
| KEY_3 | 键3 |
| KEY_4 | 键4 |
| KEY_5 | 键5 |
| KEY_6 | 键6 |
| KEY_7 | 键7 |
| KEY_8 | 键8 |
| KEY_9 | 关键9 |
| KEY_0 | 键0 |
杂项键
| 钥匙 | 描述 |
|---|---|
| KEY_PANNEL_CHDOWN | 3D |
| KEY_ANYNET | 任网+ |
| KEY_ESAVING | 节能 |
| KEY_SLEEP | 睡眠定时器 |
| KEY_DTV_SIGNAL | 数字电视信号 |
频道键
| 钥匙 | 描述 |
|---|---|
| KEY_CHUP | 频道向上 |
| KEY_CHDOWN | 通道向下 |
| KEY_PRECH | 上一个频道 |
| KEY_FAVCH | 收藏频道 |
| KEY_CH_LIST | 频道列表 |
| KEY_AUTO_PROGRAM | 自动程序 |
| KEY_MAGIC_CHANNEL | 魔术频道 |
音量键
| 钥匙 | 描述 |
|---|---|
| KEY_VOLUP | 提高音量 |
| KEY_VOLDOWN | 音量减小 |
| KEY_MUTE | 沉默的 |
方向键
| 钥匙 | 描述 |
|---|---|
| KEY_UP | 导航向上 |
| KEY_DOWN | 导航向下 |
| KEY_LEFT | 导航左 |
| KEY_RIGHT | 导航右 |
| KEY_RETURN | 导航返回/返回 |
| KEY_ENTER | 导航进入 |
媒体键
| 钥匙 | 描述 |
|---|---|
| KEY_REWIND | 倒带 |
| KEY_STOP | 停止 |
| KEY_PLAY | 玩 |
| KEY_FF | 快进 |
| KEY_REC | 记录 |
| KEY_PAUSE | 暂停 |
| KEY_LIVE | 居住 |
| KEY_QUICK_REPLAY | fnKEY_QUICK_REPLAY |
| KEY_STILL_PICTURE | fnKEY_STILL_PICTURE |
| KEY_INSTANT_REPLAY | fnKEY_INSTANT_REPLAY |
画中画
| 钥匙 | 描述 |
|---|---|
| KEY_PIP_ONOFF | PIP开/关 |
| KEY_PIP_SWAP | 点子交换 |
| KEY_PIP_SIZE | 画中画大小 |
| KEY_PIP_CHUP | 画中画频道向上 |
| KEY_PIP_CHDOWN | PIPChannelDown |
| KEY_AUTO_ARC_PIP_SMALL | PIPS小 |
| KEY_AUTO_ARC_PIP_WIDE | PIPWide |
| KEY_AUTO_ARC_PIP_RIGHT_BOTTOM | 画中画右下角 |
| KEY_AUTO_ARC_PIP_SOURCE_CHANGE | PIPSourceChange |
| KEY_PIP_SCAN | 画中画扫描 |
模式
| 钥匙 | 描述 |
|---|---|
| KEY_VCR_MODE | 录像机模式 |
| KEY_CATV_MODE | 有线电视模式 |
| KEY_DSS_MODE | DSS模式 |
| KEY_TV_MODE | 电视模式 |
| KEY_DVD_MODE | DVD模式 |
| KEY_STB_MODE | 机顶盒模式 |
| KEY_PCMODE | PC模式 |
颜色键
| 钥匙 | 描述 |
|---|---|
| KEY_GREEN | 绿色的 |
| KEY_YELLOW | 黄色 |
| KEY_CYAN | 青色 |
| KEY_RED | 红色的 |
图文电视
| 钥匙 | 描述 |
|---|---|
| KEY_TTX_MIX | 图文电视混合 |
| KEY_TTX_SUBFACE | 图文电视字幕 |
纵横比
| 钥匙 | 描述 |
|---|---|
| KEY_ASPECT | 纵横比 |
| KEY_PICTURE_SIZE | 图片尺寸 |
| KEY_4_3 | 纵横比4:3 |
| KEY_16_9 | 纵横比16:9 |
| KEY_EXT14 | 纵横比 3:4(Alt) |
| KEY_EXT15 | 纵横比16:9(Alt) |
图片模式
| 钥匙 | 描述 |
|---|---|
| KEY_PMODE | 图片模式 |
| KEY_PANORAMA | 图片模式全景 |
| KEY_DYNAMIC | 图片模式动态 |
| KEY_STANDARD | 图片模式标准 |
| KEY_MOVIE1 | 图片模式电影 |
| KEY_GAME | 图片模式游戏 |
| KEY_CUSTOM | 图片模式自定义 |
| KEY_EXT9 | 图片模式电影(Alt) |
| KEY_EXT10 | 图片模式标准(Alt) |
菜单
| 钥匙 | 描述 |
|---|---|
| KEY_MENU | 菜单 |
| KEY_TOPMENU | 顶部菜单 |
| KEY_TOOLS | 工具 |
| KEY_HOME | 家 |
| KEY_CONTENTS | 内容 |
| KEY_GUIDE | 指导 |
| KEY_DISC_MENU | 光盘菜单 |
| KEY_DVR_MENU | DVR菜单 |
| KEY_HELP | 帮助 |
屏显
| 钥匙 | 描述 |
|---|---|
| KEY_INFO | 信息 |
| KEY_CAPTION | 标题 |
| KEY_CLOCK_DISPLAY | 时钟显示 |
| KEY_SETUP_CLOCK_TIMER | 设置时钟 |
| KEY_SUB_TITLE | 字幕 |
飞涨
| 钥匙 | 描述 |
|---|---|
| KEY_ZOOM_MOVE | 缩放移动 |
| KEY_ZOOM_IN | 放大 |
| KEY_ZOOM_OUT | 缩小 |
| KEY_ZOOM1 | 缩放1 |
| KEY_ZOOM2 | 缩放2 |
其他键
| 钥匙 | 描述 |
|---|---|
| KEY_WHEEL_LEFT | 左轮 |
| KEY_WHEEL_RIGHT | 右轮 |
| KEY_ADDDEL | 添加/删除 |
| KEY_PLUS100 | 加100 |
| KEY_AD | 广告 |
| KEY_LINK | 关联 |
| KEY_TURBO | 涡轮 |
| KEY_CONVERGENCE | 收敛 |
| KEY_DEVICE_CONNECT | 设备连接 |
| KEY_11 | 键 11 |
| KEY_12 | 键 12 |
| KEY_FACTORY | 密钥工厂 |
| KEY_3速度 | Key3SPEED |
| KEY_RSURF | 密钥RSURF |
| KEY_FF_ | FF_ |
| KEY_REWIND_ | 倒带_ |
| KEY_ANGLE | 角度 |
| KEY_RESERVED1 | 保留1 |
| KEY_PROGRAM | 程序 |
| KEY_BOOKMARK | 书签 |
| KEY_PRINT | 打印 |
| KEY_CLEAR | 清除 |
| KEY_VCHIP | 微芯 |
| KEY_REPEAT | 重复 |
| KEY_DOOR | 门 |
| KEY_OPEN | 打开 |
| KEY_DMA | DMA |
| KEY_MTS | MTS |
| KEY_DNie | DNie |
| KEY_SRS | SRS |
| KEY_CONVERT_AUDIO_MAINSUB | 转换音频主/子 |
| KEY_MDC | 数据中心 |
| KEY_SEFFECT | 音效 |
| KEY_PERPECT_FOCUS | 完美聚焦 |
| KEY_CALLER_ID | 来电显示 |
| KEY_SCALE | 规模 |
| KEY_MAGIC_BRIGHT | 魔术亮 |
| KEY_W_LINK | 微联 |
| KEY_DTV_LINK | 数字电视链接 |
| KEY_APP_LIST | 应用程序列表 |
| KEY_BACK_MHP | 返回MHP |
| KEY_ALT_MHP | 备用MHP |
| KEY_DNSe | 域名系统 |
| KEY_RSS | RSS |
| KEY_ENTERTAINMENT | 娱乐 |
| KEY_ID_INPUT | 身份输入 |
| KEY_ID_SETUP | ID设置 |
| KEY_ANYVIEW | 任意视图 |
| KEY_MS | 多发性硬化症 |
| KEY_MORE | |
| KEY_MIC | |
| KEY_NINE_SEPERATE | |
| KEY_AUTO_FORMAT | 自动套用格式 |
| KEY_DNET | 网络 |
自动弧键
| 钥匙 | 描述 |
|---|---|
| KEY_AUTO_ARC_C_FORCE_AGING | |
| KEY_AUTO_ARC_CAPTION_ENG | |
| KEY_AUTO_ARC_USBJACK_INSPECT | |
| KEY_AUTO_ARC_RESET | |
| KEY_AUTO_ARC_LNA_ON | |
| KEY_AUTO_ARC_LNA_OFF | |
| KEY_AUTO_ARC_ANYNET_MODE_OK | |
| KEY_AUTO_ARC_ANYNET_AUTO_START | |
| KEY_AUTO_ARC_CAPTION_ON | |
| KEY_AUTO_ARC_CAPTION_OFF | |
| KEY_AUTO_ARC_PIP_DOUBLE | |
| KEY_AUTO_ARC_PIP_LARGE | |
| KEY_AUTO_ARC_PIP_LEFT_TOP | |
| KEY_AUTO_ARC_PIP_RIGHT_TOP | |
| KEY_AUTO_ARC_PIP_LEFT_BOTTOM | |
| KEY_AUTO_ARC_PIP_CH_CHANGE | |
| KEY_AUTO_ARC_AUTOCOLOR_SUCCESS | |
| KEY_AUTO_ARC_AUTOCOLOR_FAIL | |
| KEY_AUTO_ARC_JACK_IDENT | |
| KEY_AUTO_ARC_CAPTION_KOR | |
| KEY_AUTO_ARC_ANTENNA_AIR | |
| KEY_AUTO_ARC_ANTENNA_CABLE | |
| KEY_AUTO_ARC_ANTENNA_SATELLITE |
面板键
| 钥匙 | 描述 |
|---|---|
| KEY_PANNEL_POWER | |
| KEY_PANNEL_CHUP | |
| KEY_PANNEL_VOLUP | |
| KEY_PANNEL_VOLDOW | |
| KEY_PANNEL_ENTER | |
| KEY_PANNEL_MENU | |
| KEY_PANNEL_SOURCE | |
| KEY_PANNEL_ENTER |
扩展键
| 钥匙 | 描述 |
|---|---|
| KEY_EXT1 | |
| KEY_EXT2 | |
| KEY_EXT3 | |
| KEY_EXT4 | |
| KEY_EXT5 | |
| KEY_EXT6 | |
| KEY_EXT7 | |
| KEY_EXT8 | |
| KEY_EXT11 | |
| KEY_EXT12 | |
| KEY_EXT13 | |
| KEY_EXT16 | |
| KEY_EXT17 | |
| KEY_EXT18 | |
| KEY_EXT19 | |
| KEY_EXT20 | |
| KEY_EXT21 | |
| KEY_EXT22 | |
| KEY_EXT23 | |
| KEY_EXT24 | |
| KEY_EXT25 | |
| KEY_EXT26 | |
| KEY_EXT27 | |
| KEY_EXT28 | |
| KEY_EXT29 | |
| KEY_EXT30 | |
| KEY_EXT31 | |
| KEY_EXT32 | |
| KEY_EXT33 | |
| KEY_EXT34 | |
| KEY_EXT35 | |
| KEY_EXT36 | |
| KEY_EXT37 | |
| KEY_EXT38 | |
| KEY_EXT39 | |
| KEY_EXT40 | |
| KEY_EXT41 |
请注意,某些代码在 2016+ 电视上有所不同。例如,
KEY_POWEROFF在KEY_POWER较新的电视上。
您可以选择使用发送密钥的方法
导入 IPRemote
配置 = IP远程。配置(
名称= 'IPRemote' ,
方法= 'websocket'