按键时记录,键释放时停止

时间:2017-07-03 11:35:57

标签: python macos keyevent

我目前正在尝试制作一个简单的python脚本来创建语音数据。

脚本的想法是,当按下并按住某个键时,使用pyaudio开始录制,并在释放该键时停止录制。

我目前对如何实施while key hold / stop at release mechanism.

感到困惑

我找到了这个图书馆keyboard,但它是否合并无法理解 这种形式的机制?

1 个答案:

答案 0 :(得分:2)

根据库“键盘”源中的this code,它确实提供了检测当前是否按下某个键的机制。所以你可以做一个while循环来检查用户是否已经释放了该密钥。

#/usr/bin/python
# file: __init__.py
# ...
def is_pressed(key):
    """
    Returns True if the key is pressed.
        is_pressed(57) -> True
        is_pressed('space') -> True
        is_pressed('ctrl+space') -> True
    """
    _listener.start_if_necessary()
    if is_number(key):
        return key in _pressed_events
    elif len(key) > 1 and ('+' in key or ',' in key):
        parts = canonicalize(key)
        if len(parts) > 1:
            raise ValueError('Cannot check status of multi-step combination ({}).'.format(key))
        return all(is_pressed(part) for part in parts[0])
    else:
        for event in _pressed_events.values():
            if matches(event, key):
                return True
        return False