[client] fix bugs

This commit is contained in:
IrvingGao committed 2024-06-18 21:37:14 +08:00
1 parent b0651bdc55
commit b47fe8d21e
3 files changed
+579 -24

No files matched your search

+20 -20
View File
@@ -62,7 +62,7 @@ class WebSocketClinet:
self.sleep_event = manager.Event()
# 打断事件
self.interrupt_event = manager.Event()
# self.interrupt_event = manager.Event()
# 监听事件
self.listening_event = manager.Event()
@@ -147,9 +147,9 @@ class WebSocketClinet:
self.wakeup_event.set()
# 短时按键被按下,打断
if recorder.hardware.short_power_status and not last_short_power_status:
self.interrupt_event.set()
# self.interrupt_event.set()
recorder.hardware.short_power_status = False
print("Interrupt conversation.")
# print("Interrupt conversation.")
last_short_power_status = recorder.hardware.short_power_status
else:
self.wakeup_event.clear()
@@ -273,9 +273,9 @@ class WebSocketClinet:
# 睡眠 or 监听状态
if self.sleep_event.is_set() or self.listening_event.is_set():
break
if self.interrupt_event.is_set():
print(f"{datetime.now()}: button interrupt (input).")
break
# if self.interrupt_event.is_set():
# print(f"{datetime.now()}: button interrupt (input).")
# break
if board == 'orangepi':
recorder.hardware.set_led_off("red")
# 重新计时
@@ -388,10 +388,10 @@ class WebSocketClinet:
client.close_client()
break
if self.interrupt_event.is_set():
self.listening_event.set()
self.speaking_event.clear()
break
# if self.interrupt_event.is_set():
# self.listening_event.set()
# self.speaking_event.clear()
# break
response, data_type = client.receive_per_data()
if data_type == dict:
@@ -482,18 +482,18 @@ class WebSocketClinet:
self.speaking_event.clear()
self.sleep_event.set() # 沉默状态下,关闭唤醒状态
break
# 按键打断播放
if self.interrupt_event.is_set():
print(f"{datetime.now()}: button interrupt (output).")
# # 按键打断播放
# if self.interrupt_event.is_set():
# print(f"{datetime.now()}: button interrupt (output).")
time.sleep(0.3) # 虽然程序到这里,但是扬声器不一定播放完毕,延迟用来避免问题
# time.sleep(0.3) # 虽然程序到这里,但是扬声器不一定播放完毕,延迟用来避免问题
while not self.audio_play_queue.empty(): # 清空队列
self.audio_play_queue.get()
self.listening_event.set()
self.speaking_event.clear()
self.interrupt_event.clear()
break
# while not self.audio_play_queue.empty(): # 清空队列
# self.audio_play_queue.get()
# self.listening_event.set()
# self.speaking_event.clear()
# self.interrupt_event.clear()
# break
if self.speaking_event.is_set():
# 播放最后一段音频