提交 cd49e800 authored 作者: 陈泽健's avatar 陈泽健

封装云喇叭的注册与播放接口调用,后续对接至展厅巡检流程中。

上级 d2511d49
...@@ -874,3 +874,102 @@ def set_tx_meeting_id(element_locator, wd): ...@@ -874,3 +874,102 @@ def set_tx_meeting_id(element_locator, wd):
def get_tx_meeting_id(): def get_tx_meeting_id():
return GSTORE.get('tx_meeting_id') return GSTORE.get('tx_meeting_id')
def voice_device_register(app_id, app_secret, device_sn):
"""
注册语音设备。
向指定的API发送POST请求,以注册一个语音设备。需要提供应用的ID和密钥,以及设备的序列号。
参数:
app_id (str): 应用的唯一标识符。
app_secret (str): 应用的秘密密钥。
device_sn (str): 设备的序列号。
返回:
无直接返回值,但会记录请求结果到日志。
"""
# 构建请求体,包含注册所需的必要信息
body = {
"app_id": app_id,
"app_secret": app_secret,
"device_sn": device_sn
}
# 设置请求头,指定内容类型为JSON
headers = {
"Content-Type": "application/json"
}
try:
# 发送POST请求到注册URL,请求体序列化为JSON格式
response = requests.post("https://wdev.wmj.com.cn/deviceApi/register", headers=headers, data=json.dumps(body))
# 检查HTTP响应状态码,确保请求成功
response.raise_for_status()
# 解析响应的JSON内容
response_json = response.json()
# 记录成功的请求日志
logging.info("请求成功: %s", response_json)
except requests.exceptions.RequestException as e:
# 处理请求异常,记录错误日志
logging.error("请求失败: %s", e)
except ValueError as e:
# 处理解析响应异常,记录错误日志
logging.error("解析响应失败: %s", e)
def play_cloud_voice(app_id, app_secret, device_sn):
"""
播放云语音功能。
本函数通过发送HTTP POST请求,触发远程语音设备播放指定的语音内容。
"""
# 注册设备
voice_device_register(app_id, app_secret, device_sn)
sleep(5) # 可以考虑使用异步编程或非阻塞的方式替代
# 定义请求URL
url = os.getenv("CLOUD_VOICE_API_URL", "https://wdev.wmj.com.cn/deviceApi/send")
# 构建请求体,包括应用ID、应用密钥、设备序列号和语音播放指令
body = {
"app_id": app_id,
"app_secret": app_secret,
"device_sn": device_sn,
"data": {
"cmd_type": "play",
"info": {
"tts": "测试,这是一段音频播放",
"inner": 10, # wifi版特有
"volume": 5 # 4G版本1-7,wifi版1-10
}
}
}
# 设置请求头,指定内容类型为JSON
headers = {
"Content-Type": "application/json"
}
try:
# 发送POST请求
response = requests.post(url, headers=headers, data=json.dumps(body))
# 根据响应状态码判断请求是否成功
if response.status_code == 200:
logging.info(f"请求成功: {response.json()}")
else:
logging.error(f"请求失败: 状态码 {response.status_code}, 响应内容 {response.text}")
except requests.exceptions.RequestException as e:
logging.error(f"请求过程中发生异常: {e}")
except json.JSONDecodeError as e:
logging.error(f"JSON解析失败: {e}")
except Exception as e:
logging.error(f"发生未知异常: {e}")
# # 示例调用
# if __name__ == "__main__":
# app_id = os.getenv("APP_ID", "a98a124c6c3252f6612fc544a0d0fa79")
# app_secret = os.getenv("APP_SECRET", "88bc1ec4eba624f47b2200a4ce8c3852")
# device_sn = os.getenv("DEVICE_SN", "W703BB44444")
# play_cloud_voice(app_id, app_secret, device_sn)
\ No newline at end of file
...@@ -184,4 +184,5 @@ ...@@ -184,4 +184,5 @@
44. 2025-01-20 44. 2025-01-20
- 根据测试报告打印的异常信息,调整会议主流程相关代码的定位方式。 - 根据测试报告打印的异常信息,调整会议主流程相关代码的定位方式。
45. 2025-01-22 45. 2025-01-22
- 根据测试报告处理统一平台没有截图的问题。调整议题上传函数等待时间。 - 根据测试报告处理统一平台没有截图的问题。调整议题上传函数等待时间。
\ No newline at end of file - 封装云喇叭的注册与播放接口调用,后续对接至展厅巡检流程中。
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论