Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[TUT] Push 2 Talk Linux Systemweit

- - - - -

  • Bitte melde dich an um zu Antworten
Keine Antworten in diesem Thema

#1
grub2

grub2

    Noob

  • Members
  • PIPPIP
  • Likes
    1
  • 3 Beiträge
  • 0 Bedankt

Mit diesem kleinem Script könnt ihr Systemweit Push2Talk aktivieren. Auch für Apps, die kein Push2Talk anbieten.

Das Script greift auf Systemebene auf das Input Device zu und mutet es so lang die angegebene Taste nicht GEDRÜCKT GEHALTEN wird.

 

 

Push2Talk ist, denke ich, jedem geläufig. Du HÄLST eine Taste GEDRÜCKT und kannst, SOLANGE reden bis du sie LOSLÄSST.

 

 

 

Lets go. Das ganz soll ohne venv für den ganzen User installiert werden.

pip3 install evdev==1.7.1 pulsectl==24.12.0 pynput==1.7.7 python-xlib==0.33 six==1.17.0 -U

Kann sein, das es Kompatibilitätsfehler wirft, die kann man beheben, es sollte aber trotzdem laufen.

 

 

 

Nun erstellen wir eine Datei, die wir jedes Mal starten, wenn wir Push2Talk aktiviert haben wollen (Update zum Installieren als Service folgt vielleicht)

import time
from pynput import keyboard
import pulsectl

# Konfiguriere die gewünschte Taste für Push-to-Talk
PUSH_TO_TALK_KEY = keyboard.Key.ctrl_l  # Beispiel: Linke Strg Taste

# Initialisiere PulseAudio-Controller
pulse = pulsectl.Pulse('push-to-talk')

def get_microphone_source():
    """
    Holt die aktuelle Mikrofonquelle (default source).
    """
    default_source_name = pulse.server_info().default_source_name
    source = pulse.get_source_by_name(default_source_name)
    return source

def set_mute(mute: bool):
    """
    Setzt den Mute-Status des Mikrofons.

    :param mute: True zum Stummschalten, False zum Entstummen
    """
    source = get_microphone_source()
    if source:
        pulse.source_mute(source.index, mute)
        status = "stummgeschaltet" if mute else "entstummt"
        print(f"Mikrofon {status}.")
    else:
        print("Kein Mikrofon gefunden.")

class PushToTalk:
    def __init__(self, key):
        self.key = key
        self.is_muted = True  # Start im stummen Zustand
        set_mute(self.is_muted)

    def on_press(self, key):
        if key == self.key and self.is_muted:
            self.is_muted = False
            set_mute(self.is_muted)

    def on_release(self, key):
        if key == self.key and not self.is_muted:
            self.is_muted = True
            set_mute(self.is_muted)

    def run(self):
        print(f"Push-to-Talk aktiviert. Halte '{self.key}' gedrückt, um zu sprechen.")
        print("Drücke 'Esc', um das Programm zu beenden.")

        with keyboard.Listener(on_press=self.on_press, on_release=self.on_release) as listener:
            listener.join()

def main():
    push_to_talk = PushToTalk(PUSH_TO_TALK_KEY)
    try:
        push_to_talk.run()
    except KeyboardInterrupt:
        print("\nProgramm beendet.")
    finally:
        # Stelle sicher, dass das Mikrofon stummgeschaltet ist, wenn das Programm beendet wird
        if not push_to_talk.is_muted:
            set_mute(True)
        pulse.close()

if __name__ == "__main__":
    main()

Die Taste wird hier definiert:

PUSH_TO_TALK_KEY = keyboard.Key.ctrl_l

In diesem Fall ist es die Linke Strg Taste eine Liste der anderen Funktionstasten ist unten aufgeführt.

 

 

 

Dann starten wir das ganze.

python3.11 p2t.py 
Mikrofon stummgeschaltet.
Push-to-Talk aktiviert. Halte 'Key.ctrl' gedrückt, um zu sprechen.
Drücke 'Esc', um das Programm zu beenden.
Mikrofon entstummt.
Mikrofon stummgeschaltet.
Mikrofon entstummt.
Mikrofon stummgeschaltet.
Mikrofon entstummt.
Mikrofon stummgeschaltet.
Mikrofon entstummt.
Mikrofon stummgeschaltet.
Mikrofon entstummt.
Mikrofon stummgeschaltet.

EUER MIKROFON IST NUR AUF 0 GESTELLT VON DER LAUTSTÄRKE SOLLTET IHR PROBLEME HABEN NACH DEM SCRIPT EINFACH DIE LAUTSTÄRKE DES MIKROFONS WIEDER AUF DIE URSPRÜNGLICHE STELLEN UND ES SOLLTE KEINE WEITEREN KOMPLIKATIONEN GEBEN

 

 

 

Ihr wollt "Alt" als Push2Talk Taste dann guckt in der Liste und benutzt den Variablen namen (vor dem =)

alt = KeyCode.from_vk(0)
#: A generic Alt key. This is a modifier.
    alt = KeyCode.from_vk(0)

    #: The left Alt key. This is a modifier.
    alt_l = KeyCode.from_vk(0)

    #: The right Alt key. This is a modifier.
    alt_r = KeyCode.from_vk(0)

    #: The AltGr key. This is a modifier.
    alt_gr = KeyCode.from_vk(0)

    #: The Backspace key.
    backspace = KeyCode.from_vk(0)

    #: The CapsLock key.
    caps_lock = KeyCode.from_vk(0)

    #: A generic command button. On *PC* platforms, this corresponds to the
    #: Super key or Windows key, and on *Mac* it corresponds to the Command
    #: key. This may be a modifier.
    cmd = KeyCode.from_vk(0)

    #: The left command button. On *PC* platforms, this corresponds to the
    #: Super key or Windows key, and on *Mac* it corresponds to the Command
    #: key. This may be a modifier.
    cmd_l = KeyCode.from_vk(0)

    #: The right command button. On *PC* platforms, this corresponds to the
    #: Super key or Windows key, and on *Mac* it corresponds to the Command
    #: key. This may be a modifier.
    cmd_r = KeyCode.from_vk(0)

    #: A generic Ctrl key. This is a modifier.
    ctrl = KeyCode.from_vk(0)

    #: The left Ctrl key. This is a modifier.
    ctrl_l = KeyCode.from_vk(0)

    #: The right Ctrl key. This is a modifier.
    ctrl_r = KeyCode.from_vk(0)

    #: The Delete key.
    delete = KeyCode.from_vk(0)

    #: A down arrow key.
    down = KeyCode.from_vk(0)

    #: The End key.
    end = KeyCode.from_vk(0)

    #: The Enter or Return key.
    enter = KeyCode.from_vk(0)

    #: The Esc key.
    esc = KeyCode.from_vk(0)

    #: The function keys. F1 to F20 are defined.
    f1 = KeyCode.from_vk(0)
    f2 = KeyCode.from_vk(0)
    f3 = KeyCode.from_vk(0)
    f4 = KeyCode.from_vk(0)
    f5 = KeyCode.from_vk(0)
    f6 = KeyCode.from_vk(0)
    f7 = KeyCode.from_vk(0)
    f8 = KeyCode.from_vk(0)
    f9 = KeyCode.from_vk(0)
    f10 = KeyCode.from_vk(0)
    f11 = KeyCode.from_vk(0)
    f12 = KeyCode.from_vk(0)
    f13 = KeyCode.from_vk(0)
    f14 = KeyCode.from_vk(0)
    f15 = KeyCode.from_vk(0)
    f16 = KeyCode.from_vk(0)
    f17 = KeyCode.from_vk(0)
    f18 = KeyCode.from_vk(0)
    f19 = KeyCode.from_vk(0)
    f20 = KeyCode.from_vk(0)

    #: The Home key.
    home = KeyCode.from_vk(0)

    #: A left arrow key.
    left = KeyCode.from_vk(0)

    #: The PageDown key.
    page_down = KeyCode.from_vk(0)

    #: The PageUp key.
    page_up = KeyCode.from_vk(0)

    #: A right arrow key.
    right = KeyCode.from_vk(0)

    #: A generic Shift key. This is a modifier.
    shift = KeyCode.from_vk(0)

    #: The left Shift key. This is a modifier.
    shift_l = KeyCode.from_vk(0)

    #: The right Shift key. This is a modifier.
    shift_r = KeyCode.from_vk(0)

    #: The Space key.
    space = KeyCode.from_vk(0)

    #: The Tab key.
    tab = KeyCode.from_vk(0)

    #: An up arrow key.
    up = KeyCode.from_vk(0)

    #: The play/pause toggle.
    media_play_pause = KeyCode.from_vk(0)

    #: The volume mute button.
    media_volume_mute = KeyCode.from_vk(0)

    #: The volume down button.
    media_volume_down = KeyCode.from_vk(0)

    #: The volume up button.
    media_volume_up = KeyCode.from_vk(0)

    #: The previous track button.
    media_previous = KeyCode.from_vk(0)

    #: The next track button.
    media_next = KeyCode.from_vk(0)

    #: The Insert key. This may be undefined for some platforms.
    insert = KeyCode.from_vk(0)

    #: The Menu key. This may be undefined for some platforms.
    menu = KeyCode.from_vk(0)

    #: The NumLock key. This may be undefined for some platforms.
    num_lock = KeyCode.from_vk(0)

    #: The Pause/Break key. This may be undefined for some platforms.
    pause = KeyCode.from_vk(0)

    #: The PrintScreen key. This may be undefined for some platforms.
    print_screen = KeyCode.from_vk(0)

    #: The ScrollLock key. This may be undefined for some platforms.
    scroll_lock = KeyCode.from_vk(0)

Bearbeitet von grub2, Gestern, 19:23.





Dieses Thema wurde von 4 Mitglied(ern) gelesen


    Blackhook, CyberFlash, FrogPussyGreen, grub2
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.