2017-07-03 6 views
0

Ich versuche gerade ein einfaches Python-Skript zum Erstellen von Sprachdaten zu erstellen.Aufnahme, während die Taste gedrückt wird, stopp wenn die Taste losgelassen wird

Die Idee mit dem Skript ist, dass beginnt die Aufnahme mit pyaudio, wenn eine Taste gedrückt und gedrückt gehalten wird, und stoppt die Aufnahme, wenn die Taste losgelassen wird.

ich ein wenig verwirrt bin zur Zeit, wie ich die while key hold/stop at release mechanism.

ich diese Bibliothek gefunden keyboard, kann aber nicht Sinn machen, ob es enthält diese Form des Mechanismus implementieren sollte?

+1

Siehe Kommentar von [dieser] (https://stackoverflow.com/questions/40649634/determine-length-of-keypress-in-python) Frage. Das könnte dir helfen. –

+0

scheinen Genau wie ein bisschen zu viel für diese einfache Aufgabe @ P.Siehr –

Antwort

1

Nach this code in der Quelle der Bibliothek "Tastatur", bietet es einen solchen Mechanismus zu erkennen, ob eine Taste gerade gedrückt wird. Sie können also einfach eine while-Schleife ausführen, um zu prüfen, ob der Benutzer diesen Schlüssel freigegeben hat.

#/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 
+0

'während keyboard.is_pressed (‚Raum‘):' gibt mir Fehlermeldung: 'erhöhen Import (" Sie müssen root sein, dies zu verwenden Bibliothek unter linux ') Import: Sie müssen root sein, um diese Bibliothek auf linux.' zu nutzen und es als sudo gibt mir Fehlermeldung ausgeführt wird: 'IOError: [Errno 1] Betrieb nicht zulässig:'./dev/uinput'' –

+0

'Tastatur' scheint nur mit Windows und Linux zu arbeiten. Alles, was sowohl auf Linux als auch auf Windows funktioniert. –

+0

@open_ey, Verwenden Sie MacOS? – Sajuuk

Verwandte Themen