Python:仅当应用程序处于焦点时才侦听键

问题描述

我有一个关于为控制台窗口制作音频播放器的小项目。一切都很顺利,但我正在为一个小细节而苦苦挣扎。我希望当用户按下某个键(例如空格)时暂停音频,而我已经实现了这一点。问题是:即使播放器没有聚焦,音频也会暂停。

例如,我在播放器上放了一些音乐,然后转到网络浏览器。如果在浏览器中导航时按空格键,音频将停止。

我希望程序仅在应用聚焦时才侦听。这是我的代码的一部分:

def play_pause():
    global buttons
    
    if '⏸' in buttons:
        buttons = (' ' * 21) + '⏮  ⯈  ⏭'
    else:
        buttons = (' ' * 21) + '⏮  ⏸  ⏭'
    
    audio.play_pause_audio()

def controller(key):
    if key == Key.space or key == Key.media_play_pause:
        play_pause()

    # TO DO:
    # if key == Key.left or key == Key.media_prevIoUs:
    #     pass
    # if key == Key.right or key == Key.media_next:
    #     pass

    draw_player()

def start_player(audio_name):
    global current_audio
    current_audio = audio_name

    draw_player()

    with Listener(on_press=controller) as listener:
        listener.join()

我目前正在使用 pynput:from pynput.keyboard import Key,Listener

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)