You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pynput实现点击检测:每次点击输出不同文本并播放音频的实现问询

功能实现方案

前置依赖安装

先安装需要的第三方库:

pip install pynput playsound==1.2.2

指定playsound 1.2.2版本是为了避免高版本在Windows系统下的兼容性问题。

完整可运行代码

from pynput.mouse import Listener
from playsound import playsound

# -------------------------- 自定义配置区 --------------------------
TEXT_LIST = ["HI", "WHY", "BYE"]  # 按点击顺序轮询的文本列表
PRESS_AUDIO_LIST = ["food.wav", "why_press.wav", "bye_press.wav"]  # 按下鼠标时对应播放的音频路径
RELEASE_AUDIO_LIST = ["click.wav", "why_release.wav", "bye_release.wav"]  # 松开鼠标时对应播放的音频路径
LOOP_MODE = True  # 点击次数超过列表长度后是否从头循环,设为False则固定使用最后一组配置
# -------------------------------------------------------------------

current_idx = 0  # 记录当前轮次对应的索引

def on_click(x, y, button, pressed):
    global current_idx
    max_support_idx = len(TEXT_LIST) - 1
    # 计算当前实际使用的索引,兼容循环/非循环模式
    if current_idx <= max_support_idx:
        use_idx = current_idx
    else:
        use_idx = current_idx % (max_support_idx + 1) if LOOP_MODE else max_support_idx

    if pressed:
        # 按下动作逻辑
        print(f"{TEXT_LIST[use_idx]} - Clicked")
        # 播放按下对应音频,加异常捕获避免文件不存在导致崩溃
        try:
            if use_idx < len(PRESS_AUDIO_LIST):
                playsound(PRESS_AUDIO_LIST[use_idx])
        except:
            pass
    else:
        # 松开动作逻辑
        print(f"{TEXT_LIST[use_idx]} - Unclicked")
        try:
            if use_idx < len(RELEASE_AUDIO_LIST):
                playsound(RELEASE_AUDIO_LIST[use_idx])
        except:
            pass
        # 松开后索引+1,下一次点击使用下一组配置
        current_idx += 1
        # 如果需要在最后一次点击后停止监听,可取消下面两行注释
        # if use_idx == max_support_idx and not LOOP_MODE:
        #     return False

if __name__ == "__main__":
    with Listener(on_click=on_click) as listener:
        listener.join()

逻辑说明

  • 全局变量current_idx记录点击轮次,每次鼠标松开后自增,保证同一次按下、松开动作使用同一组文本和音频,符合需求的输出规则
  • 所有自定义内容都放在配置区,直接修改对应列表即可适配自己的文本、音频路径要求,音频数量和文本数量不匹配时也不会报错,缺失的音频会自动跳过播放
  • 如果需要限制监听次数,只需要在松开逻辑里补充return False的触发条件即可终止监听

内容的提问来源于stack exchange,提问作者j6n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:54:08