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

问题描述 投票:0回答:1

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

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

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

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

python keyboard keylistener pynput
1个回答
0
投票

你找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.