voice_test.py 8.4 KB
# import time
# import logging
#
# # 假设这些函数是已经定义好的
# # sendCodeString(com, command)
# # getSystemInt(key, default)
# # setSystemInt(key, value)
# # setText(id, text)
# # setBarLevel(id, level)
# # setAllBarLevel(id, level)
# # setButtonImage(id, image)
# # sendLog(message, data)
# # getBarLevel(id)
# # metAudio.update()
# # delay(seconds, function)
#
# YPCOM = "COM7"  # 控制端口
# MaxLength = 8  # 最大通道数
# ChannelMute_ONIMG = 'slDevPlayerMuteBtnS1.png'  # 静音状态按钮0db--50db
# ChannelMute_OFFIMG = 'slDevPlayerMuteBtfS1.png'  # 取消静音状态按钮
#
# ChannelValue = [0] * MaxLength  # 设置音量初始值
# ChannelMute = [0] * MaxLength  # 设置静音初始值 0=非静音  1=静音
# ChannelMax = [0, 2, 12, 12, 12, 12, 12, 12]  # 设置控制音量的最大值
# ChannelMini = [0, -10, -10, -10, -20, -20, -20, -20]  # 设置控制音量的最小值
# ChannelDPValue = [0] * MaxLength
# ChannelDPMax = [0, 20, 20, 20, 20, 20, 20, 20]
# ChannelDPMini = [0, -100, -100, -100, -100, -100, -100, -100]
#
# # 初始化数组
# for i in range(MaxLength):
#     ChannelMute[i] = 0  # 初始静音值0非静音,1静音
#     ChannelValue[i] = -20  # 初始音量值-20DB
#     ChannelMax[i] = 10  # 最大音量db值0(与ChannelMini[i]决定音量控制区间)
#     ChannelMini[i] = -30  # 最小音量db值-50(与ChannelMax[i]决定音量控制区间)
#
#
# # 音量加
# def SetVolumeUP(channel):
#     ChannelValue[channel] = getSystemInt(f'INVOLUME{channel}', ChannelValue[channel])  # 读取中控保存的音量值
#     if ChannelValue[channel] < ChannelMax[channel]:
#         ChannelValue[channel] += 1
#     else:
#         ChannelValue[channel] = ChannelMax[channel]
#     SetVolume(channel)
#
#
# # 音量减
# def SetVolumeDown(channel):
#     ChannelValue[channel] = getSystemInt(f'INVOLUME{channel}', ChannelValue[channel])  # 读取中控保存的音量值
#     if ChannelValue[channel] > ChannelMini[channel]:
#         ChannelValue[channel] -= 1
#     else:
#         ChannelValue[channel] = ChannelMini[channel]
#     SetVolume(channel)
#
#
# # 设置音量大小 并将音量大小值存入中控
# def SetVolume(channel):
#     level_command_map = {
#         1: 'Level9 set level 1',
#         2: 'Level2 set level 1',
#         3: 'Level2 set level 2',
#         4: 'Level3 set level 1',
#         5: 'Level4 set level 1',
#         6: 'Level2 set level 9',
#         7: 'Level10 set level 1',
#         8: 'Level7 set level 7'
#     }
#
#     if channel in level_command_map:
#         command = f"{level_command_map[channel]} {ChannelValue[channel]}x0d"
#         sendCodeString(YPCOM, command)
#
#     # 拉条状态和数值
#     chNum = ChannelValue[channel] - ChannelMini[channel]  # 当前音量值-最小音量值得到当前音量值与最低音量值的差
#     chRound = round(chNum * 100 / (ChannelMax[channel] - ChannelMini[channel]))  # 拉条与文字值为音量值差(最大音量-最小音量)100
#     setText(f'txtVolume{channel}', f'{chRound}%')  # 显示拉条上方文字
#     setBarLevel(f'barVolume{channel}', chRound)  # 设置拉条的值
#     setAllBarLevel(f'barVolume{channel}', chRound)
#     setSystemInt(f'INVOLUME{channel}', ChannelValue[channel])  # 将值保存在中控主机
#     metAudio.update()
#
#
# # 静音取消静音功能
# def SetVolumeMute(channel):
#     mute_command_map = {
#         1: 'Level9 set mute 1',
#         2: 'Level2 set mute 1',
#         3: 'Level2 set mute 2',
#         4: 'Level3 set mute 1',
#         5: 'Level4 set mute 1',
#         6: 'Level2 set mute 9',
#         7: 'Level10 set mute 1',
#         8: 'Level7 set mute 7'
#     }
#
#     if channel in mute_command_map:
#         if ChannelMute[channel] == 0:
#             command = f"{mute_command_map[channel]} 1x0d"
#             sendCodeString(YPCOM, command)
#             ChannelMute[channel] = 1
#             setButtonImage(f'btnVolumeMute{channel}', ChannelMute_ONIMG)  # 静音
#         else:
#             command = f"{mute_command_map[channel]} 0x0d"
#             sendCodeString(YPCOM, command)
#             ChannelMute[channel] = 0
#             setButtonImage(f'btnVolumeMute{channel}', ChannelMute_OFFIMG)  # 取消静音
#
#     setSystemInt(f'JINYING{channel}', ChannelMute[channel])
#     metAudio.update()
#
#
# # 音频同步状态
# def INITFrequencyStatus():
#     for i in range(1, MaxLength + 1):
#         ChannelValue[i - 1] = getSystemInt(f'INVOLUME{i}', ChannelValue[i - 1])
#         chNum = ChannelValue[i - 1] - ChannelMini[i - 1]
#         chRound = round(chNum * 100 / (ChannelMax[i - 1] - ChannelMini[i - 1]))
#         # 同步拉条状态
#         setText(f'txtVolume{i}', f'{chRound}%')
#         setAllBarLevel(f'barVolume{i}', chRound)
#         setBarLevel(f'barVolume{i}', chRound)
#         # 同步静音状态
#         ChannelMute[i - 1] = getSystemInt(f'JINYING{i}', ChannelMute[i - 1])
#         if ChannelMute[i - 1] == 1:
#             setButtonImage(f'btnVolumeMute{i}', ChannelMute_ONIMG)
#         else:
#             setButtonImage(f'btnVolumeMute{i}', ChannelMute_OFFIMG)
#
#     setButtonImage('ypModel1', 'TemporalPowerOFF_png')
#     setButtonImage('ypModel2', 'TemporalPowerOFF_png')
#     setButtonImage('ypModel3', 'TemporalPowerOFF_png')
#     model_value = getSystemInt('ypModelValue', 1)
#     setButtonImage(f'ypModel{model_value}', 'TemporalPowerON_png')
#
#
# def delay(seconds, function):
#     time.sleep(seconds)
#     function()
#
#
# # 延迟5秒后初始化音频状态
# delay(5, INITFrequencyStatus)
#
#
# # 拉条的方法
# def SetBrace(channel):
#     getBarNum = getBarLevel(f'barVolume{channel}')  # getBarLevel()方法获取拉条当前值
#     # 当前通道音量分贝值 = 拉条值((最大分贝值-最小分贝值)100)+ 最小分贝值;
#     ChannelValue[channel] = round(getBarNum * (ChannelMax[channel] - ChannelMini[channel]) / 100) + ChannelMini[channel]
#     SetVolume(channel)
#
#
# def ypModel(arg):
#     if arg == 3:
#         setSystemInt('INVOLUME1', 0)
#         setSystemInt('INVOLUME2', 0)
#         setSystemInt('INVOLUME3', 0)
#         metAudio.update()
#         INITFrequencyStatus()
#
#     setSystemInt('ypModelValue', arg)
#     setButtonImage('ypModel1', 'TemporalPowerOFF_png')
#     setButtonImage('ypModel2', 'TemporalPowerOFF_png')
#     setButtonImage('ypModel3', 'TemporalPowerOFF_png')
#     setButtonImage(f'ypModel{arg}', 'TemporalPowerON_png')
#     sendCodeString(YPCOM, f'DEVICE recallPreset 100{arg}x0d')
#
#
# def getYpDp():
#     sendCodeString('NET1', 'AudioMeter2 get levelsx0d')
#     delay(0.3, lambda: sendCodeString('NET1', 'AudioMeter4 get levelsx0d'))
#     delay(0.6, lambda: sendCodeString('NET1', 'AudioMeter5 get levelsx0d'))
#     delay(1, getYpDp)
#
#
# def getYpDp1():
#     sendCodeString('NET1',
#                    'xFFxFBx18xFFxFBx1FxFFxFCx20xFFxFCx23xFFxFBx27xFFxFCx24xFFxFAx1Fx00x78x00x32xFFxF0xFFxFAx27x00xFFxF0xFFxFAx18x00x41x4Ex53x49xFFxF0xFFxFDx03xFFxFBx01x0dx0a')
#     delay(60, getYpDp1)
#
#
# getYpDp()
# getYpDp1()
#
#
# def setStringReceive(com, callback):
#     def receive_data(data):
#         sendLog(f'{com} Receive', data)
#         CountArrayCount[7] = 0
#         callback(data)
#
#     # 假设这里有一个机制来接收数据并调用receive_data
#     pass
#
#
# def handle_com7_data(data):
#     sendLog('COM7 Receive', data)
#     CountArrayCount[7] = 0
#
#
# def handle_net1_data(data):
#     CountArrayCount[7] = 0
#     a = data.find('AudioMeter')
#     if a != -1:
#         num = data[a + 10]
#         c = data[data.find('value'):].split()
#         if num == '2':
#             ChannelDPValue[2] = round(float(c[7]))
#             ChannelDPValue[3] = round(float(c[8]))
#             ChannelDPValue[4] = round(float(c[9]))
#             ChannelDPValue[5] = round(float(c[0]))
#             ChannelDPValue[6] = round(float(c[1]))
#             ChannelDPValue[7] = round(float(c[2]))
#             ChannelDPValue[8] = round(float(c[3]))
#             ChannelDPValue[9] = round(float(c[4]))
#             ChannelDPValue[10] = round(float(c[5]))
#             ChannelDPValue[11] = round(float(c[6]))
#             ChannelDPValue[12] = round(float(c[7]))
#         elif num == '4':
#             ChannelDPValue[13] = round(float(c[1]))
#             ChannelDPValue[14] = round(float(c[2]))
#         else:
#             ChannelDPValue[0] = round(float(c[0]))
#             ChannelDPValue[1] = round(float(c[1]))
#         metAudio.update()
#
#
# setStringReceive(YPCOM, handle_com7_data)
# setStringReceive('NET1', handle_net1_data)