Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Lautstärkeänderung von MPG123 Radiostream nicht möglich

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - Lautstärkeänderung von MPG123 Radiostream nicht möglich

    Hallo,

    ich nutze den MPG123 Player auf dem Wiregate um einen Radiostream zu übertragen. Um die Lautstärke verändern zu können wollte ich nun unten stehendes Plugin verwenden, was mir allerdings nicht gelingt. Was kann man hier verkehrt machen? Habe den Wert auch schon direkt vom der ETS her gesendet, allerdings auch ohne Erfolg.

    Für ein paar Tipps wäre ich sehr dankbar.

    Gruß
    Plusch
    Code:
    #This plugin sets and gets the volume for the WireGate internal sound
    # do all configs here:
    my $knx_addr = '0/0/78';
    my $alsa_chanel = 'Headphone';  # other possibility: Master
    #################################################################
    # do not change anything below, all config stays above
    #################################################################
    # subscribe plugin and call it only when necessary
    $plugin_subscribe{$knx_addr}{$plugname} = 1;
    $plugin_info{$plugname.'_cycle'} = 0;
    # handle telegrams
    return if ($msg{'dst'} ne $knx_addr); # early exit if the message wasn't meant for us
    if ($msg{'apci'} eq 'A_GroupValue_Write') # change volume
    {
      # if address is already imported:
      #my $volume = $msg{'value'};
      # if address wasn't imported:
      my $volume = decode_dpt6($msg{'data'});
      my $debug = `amixer sset $alsa_chanel $volume`;
      return ; #$debug;
    }
    if ($msg{'apci'} eq 'A_GroupValue_Read') # get volume
    {
      my $volume = `amixer sget $alsa_chanel | grep 'Left:' | sed 's/.*Playback [URL="file://\\("]\\([/URL][0-9]*\\) .*/\\1/'`;
      knx_write( $knx_addr, $volume, 1 );
      return ; #"Figured out volume of $volume and sent it to $knx_addr";
    }

    #2
    Hi,

    Was hast du den als Ausgabe des: return $debug. Bekommen?
    Bzw was sagt die Konsole wenn du den amixer sget ..... Befehl eingibst?

    Gruß

    Sent from my HTC Pyramid using Tapatalk

    Kommentar


      #3
      Hallo,

      Ich bekomme nichts als Antwort.

      Plusch


      Sent from my iPad using Tapatalk

      Kommentar


        #4
        Zitat von Plusch Beitrag anzeigen
        Code:
        #This plugin sets and gets the volume for the WireGate internal sound
        # do all configs here:
        my $knx_addr = '0/0/78';
        my $alsa_chanel = '[COLOR=red][B]Master[/B][/COLOR]';  # other possibility: Master
        #################################################################
        # do not change anything below, all config stays above
        #################################################################
        # subscribe plugin and call it only when necessary
        $plugin_subscribe{$knx_addr}{$plugname} = 1;
        $plugin_info{$plugname.'_cycle'} = 0;
        # handle telegrams
        .
        .
        .
        Hmm, habe nun das Wiregate neu gestartet und obige Änderung vorgenommen. Tja und was soll ich sagen: es funktioniert .?!..
        Ich kann die Lautstärke ändern, zwar nicht von 0-100%, bin bei ca. 40% schon am Maximum, aber so ist es ok.
        Welcher Ausgang ist denn der Kopfhörerausgang am Wiregate?
        Der von mir benutzte Ausgang (unten rechts) ist der einzige beim dem die im Moment angeschlossenen Kopfhörer einen Ton von sich geben.

        Was habe ich hier falsch gemacht?

        Gruß
        Plusch

        Kommentar


          #5
          Die Namen der Alsachannel kann man sich auf der Konsole anzeigen lassen.
          Auswendig kann ich den Befehl nicht sagen aber amixer -c0 get (oder sget) controls (oder scontrols) sollte helfen.

          Dass Problem ist dass du einen Bereich von 0 - 255 hast. Sprich 100 entspricht 40%. Bei mir hat ein prozent Zeichen geholfen. Probier den Befehl aber erst in der Konsole. (amixer -c0 set/sset blablabla 100%)

          Gruß

          Edit: mit dem falschen alsa channel ist keine Ausgabe nicht verwunderlich

          Edit2: schau mal die Lautstärken an: alsamixer -c0. ob die alle aufgedreht sind

          Nochma edit: wenn du den mpd benutzt kannst du per mpc Befehle schicken und kannst die alsa Steuerung auf 100% stehen lassen. Für mpc würde ein Lautstärken Befehl so aussehen: MPD_PORT=6600 IP=192.168.178.xx mpc volume 20%
          Das ändert die Lautstärke des mpd. (geht auch prev,next,Pause,play usw). Als Browser interface nutze ich relaxx-Player. Nur zu empfehlen.
          Mit der Soundkarte kann ich dir leider nicht helfen ich nutze eine 7.1 USB Karte.

          Sent from my HTC Pyramid using Tapatalk

          Kommentar


            #6
            Danke für die vielen Tipps und Hinweise.
            Werde mich morgen weiter damit beschäftigen.

            Wie machst Du das eigentlich in Räumen in denen nur ein Lautsprecher benötigt wird mit dem Stereosignal?
            Oder reicht es aus nur einen Lautsprecher zu verbauen und mit dem "halben" Stereosignal zu befeuern?

            Gruß
            Plusch


            Sent from my iPad using Tapatalk

            Kommentar


              #7
              Vermutlich nur falscher DPT (5.001 vs. 5.010)..

              Makki
              EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
              -> Bitte KEINE PNs!

              Kommentar


                #8
                Zitat von makki Beitrag anzeigen
                Vermutlich nur falscher DPT (5.001 vs. 5.010)..
                Prima, das wars. Danke!

                Wie bekomme ich es jetzt noch hin das nach dem Abspielen einer MP3 Datei der Player automatisch beendet wird? Ich muss sonnst immer nach abspielen einer mp3 Datei immer erst eine "0" senden um ihn dann wieder einschalten zu können und um eine neue Datei abspielen zu können.

                Gruß Plusch

                Kommentar


                  #9
                  Dann mach ihn halt entweder zu bevor was neues abgespielt wird wie in Chris' Plugin:
                  my $debug = `echo "Q" > $mpg123_fifo` if( -p $mpg123_fifo );
                  oder lass ihn einfach laufen
                  oder: ich bin da für sowas eh eher ein Freund von mpd (und den laufen lassen)

                  Makki
                  EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                  -> Bitte KEINE PNs!

                  Kommentar


                    #10
                    Ich beende den Player nun mit dem von mir gebasteltem unten stehendem Ausschaltverzögerungs-Timer-Plugin.
                    Ist zwar irgendwie von hinten durch die Brust ins Auge, aber es führt zum Ziel. Außerdem kann man das Plugin gleich noch für andere Sachen verwenden. Habe bisher noch nichts mit einfach nur dieser Funktion gefunden.
                    Falls noch irgendwelche Fehler drin sind wäre ich über Hinweise zur Berichtigung sehr dankbar.

                    Danke!
                    Gruß Plusch

                    Code:
                    ### Definitionen
                    my $TimerIn_ga = '0/0/77'; # Gruppenadresse Starten des Timers
                    my $TimerOut_ga = '0/0/77'; # Gruppenadresse Ausgang des Timers
                    my $laufzeit = 20*1*1; # Laufzeit bis Auto Aus in sek.
                    ### Ende Definitionen
                    # Eigenen Aufruf-Zyklus auf 0 Sekunden setzen
                    $plugin_info{$plugname.'_cycle'} = 0;
                    # Plugin an Gruppenadresse "anmelden"
                    $plugin_subscribe{$TimerIn_ga}{$plugname} = 1;
                     
                    #Prüfung, ob GA angesprochen wurde
                    if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $TimerIn_ga ) { 
                    #Wert GA lesen
                    my $On = knx_read($TimerIn_ga,300,1);
                    #Ausführungszeit setzen
                    if ($On == 1) {
                    $plugin_info{$plugname.'_timerActive'} = 1;
                    $plugin_info{$plugname.'_cycle'} = $laufzeit;
                    }
                    }
                    #Ausführung wenn Laufzeit abgelaufen ist
                    elsif ($plugin_info{$plugname.'_timerActive'} == 1) {
                    #mpg123 Player stoppen 
                    $plugin_info{$plugname.'_timerActive'} = 0;
                    $plugin_info{$plugname.'_cycle'} = 0; 
                    knx_write($TimerOut_ga,0,1);
                    }
                    return "Warte";

                    Kommentar


                      #11
                      Sieht nicht schlecht aus, es führen viele Wege nach Rom (ich vermute mal das eigentliche beenden des mpg123 macht das andere Plugin)

                      $plugin_info{$plugname.''} könnte man vielleicht noch sprechender benennen, sowas wie $plugin_info{$plugname.'_timerActive'} aber das ist eher kosmetisch..

                      Makki
                      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                      -> Bitte KEINE PNs!

                      Kommentar


                        #12
                        Genau, abschalten macht das andere Plugin.
                        Danke für den Hinweis, werde es noch korrigieren.

                        Plusch


                        Sent from my iPad using Tapatalk

                        Edit: habs angepasst

                        Kommentar

                        Lädt...
                        X