[client] fix bugs
This commit is contained in:
parent
5370242726
commit
b431f2611b
|
@ -60,6 +60,9 @@ class WebSocketClinet:
|
|||
# 唤醒事件
|
||||
self.wakeup_event = manager.Event()
|
||||
|
||||
# 打断事件
|
||||
self.interrupt_event = manager.Event()
|
||||
|
||||
# 监听事件
|
||||
self.listening_event = manager.Event()
|
||||
# 播放事件
|
||||
|
@ -143,8 +146,7 @@ class WebSocketClinet:
|
|||
self.wakeup_event.set()
|
||||
# 短时按键被按下,打断
|
||||
if recorder.hardware.short_power_status and not last_short_power_status:
|
||||
self.speaking_event.clear()
|
||||
self.listening_event.set()
|
||||
self.interrupt_event.set()
|
||||
recorder.hardware.short_power_status = False
|
||||
print("Interrupt conversation.")
|
||||
last_short_power_status = recorder.hardware.short_power_status
|
||||
|
@ -449,14 +451,23 @@ class WebSocketClinet:
|
|||
|
||||
# 关闭状态
|
||||
if not self.wakeup_event.is_set():
|
||||
print(f"{datetime.now()}: speaker close.")
|
||||
print(f"{datetime.now()}: microphone and speaker close.")
|
||||
self.listening_event.clear()
|
||||
self.speaking_event.clear()
|
||||
break
|
||||
# 按键打断播放
|
||||
if self.listening_event.is_set() and not self.speaking_event.is_set():
|
||||
print(f"{datetime.now()}: speaker interrupt.")
|
||||
if self.interrupt_event.is_set():
|
||||
print(f"{datetime.now()}: button interrupt.")
|
||||
# 虽然程序到这里,但是扬声器不一定播放完毕,延迟用来避免问题
|
||||
time.sleep(0.5)
|
||||
self.listening_event.set()
|
||||
self.speaking_event.clear()
|
||||
self.interrupt_event.clear()
|
||||
break
|
||||
# if self.listening_event.is_set() and not self.speaking_event.is_set():
|
||||
# print(f"{datetime.now()}: speaker interrupt.")
|
||||
# break
|
||||
|
||||
|
||||
|
||||
if not self.speaking_event:
|
||||
|
|
Loading…
Reference in New Issue