点击检测+命令:Pynput
Posted
技术标签:
【中文标题】点击检测+命令:Pynput【英文标题】:Click detection + Command: Pynput 【发布时间】:2022-01-01 07:48:40 【问题描述】:所以,我正在使用 pynput 做一些事情,我想要它,所以每次点击它都会打印一个不同的单词,例如:
Click:
Print("HI")
Click:
Print("WHY")
Click:
Print("BYE")
但我使用的代码是:
def on_click(x, y, button, pressed):
print(c.format(
print("HI - Clicked")
if pressed else
print("HI - Unclicked"),
(x, y)))
if not pressed:
# Stop listener
return False
with Listener(
on_click=on_click) as listener:
listener.join()
所以在它说(“HI - Unclicked”)并且您再次点击之后,我希望它说(“WHY - Clicked”)和(“WHY - Unclicked”)如果有人知道如何请回复,编辑:请显示我如何为单击播放音频并取消单击列表,例如:['food.wav', 'click.wav'] 谢谢。
【问题讨论】:
你能举例说明你得到的当前输出与你期望的输出吗? 记住print
返回None
。在您的 c.format
中,您应该有字符串,而不是 print
函数。
当然,如果您在第一次取消点击后立即杀死侦听器,那么您将永远不会获得第二次点击。
【参考方案1】:
您只需保留一份问候列表并轮流查看。
greets = ["HI", "WHY", "BYE"]
def on_click(x, y, button, pressed):
greet = greets[0]
if pressed:
print(greet, "- Clicked", x, y )
else:
print(greet, "- Unclicked", x, y )
greets.append(greets.pop(0))
with Listener(on_click=on_click) as listener:
listener.join()
更新
greets = ["gunshot.wav", "you.wav", "cool.wav"]
def on_click(x, y, button, pressed):
greet = greets[0]
if pressed:
pg.mixer.Sound(greet).play()
print(greet, "- Clicked", x, y )
else:
print(greet, "- Unclicked", x, y )
greets.append(greets.pop(0))
with Listener(on_click=on_click) as listener:
listener.join()
甚至:
greets = [pg.mixer.Sound(k) for k in ("gunshot.wav", "you.wav", "cool.wav")]
def on_click(x, y, button, pressed):
greet = greets[0]
if pressed:
greet.play()
print("- Clicked", x, y )
else:
print("- Unclicked", x, y )
greets.append(greets.pop(0))
with Listener(on_click=on_click) as listener:
listener.join()
【讨论】:
谢谢!但是如何在单击时播放带有列表名称的音频? 谁说过音频?你从来没有提到过。您的应用中已经有声音了吗? 是的,我有音频,但我忘了放播放和音频太抱歉了。 好吧,我不知道你用的是什么音频包。如果您有文本转语音模块,则只需将greet
字符串传递给该模块即可。
我没有使用 TTS,我使用的是 pygame 的音频功能,例如: /跨度>
以上是关于点击检测+命令:Pynput的主要内容,如果未能解决你的问题,请参考以下文章