IPS 4-Linux - sound.mp3 abspielen (Türklingel)

Hallo,

wie kann ich eine mp3 sound abspielen? Das Mediaplayer Modul ist bei Linux wohl nicht enthalten.
Leider finde ich auch hier im Forum keine hinweise dazu.

Danke und Gruß

Tom_

Moin Tom!

BENUTZ MICH :smiley:

Und finde z.B.:
http://www.tuxarena.com/2011/12/10-console-music-players-for-linux/
Play music from command line on ubuntu
How to Play MP3s From The Linux Command Line

Grüße,
Chris

Hallo,

ist zwar schon ewig her, ich habe es hier aber mal aufgeschrieben:
Sprachausgabe auf Soundkarte

Gruß,
Thorsten

Danke !!
es funktioniert wie gewünscht.
Ich habe die Variante von Thorsten (Kugelberg) genutzt.

Mediaplayer installiert, config geändert und mit

system("mplayer /usr/share/symcon/media/door.mp3");

aufgerufen.

Gruß Thomas

Hallo,
einen kleinen Hacken hat die ganze sache noch…

Mit einem Ereignis starte ich dieses Skript in IPS:
system ("/opt/IPS_Skripte/TürCameraStart.sh")

TürCameraStart.sh :


#!/bin/bash
rm /opt/IPS_Skripte/cvlc.pid              # vorhandene Datei löschen
echo $$ > /opt/IPS_Skripte/cvlc.pid       # Pid in datei schreiben
exec /usr/bin/cvlc  v4l2:///dev/video0    # vlc staten

Und mit diesem Skript möchte ich den Vlc Player stoppen:

#!/bin/bash
kill `cat /opt/IPS_Skripte/cvlc.pid`

Wenn ich die Skripte manuell ausführe funktioniert alles wie erwartet. Sobald ich das über IPS starte, werden die ersten 2 Zeilen ausgeführt (Datei wird gelöscht und erstellt)
der cvlc startet nicht
Wie und in welchem Kontext muss ich das Skript aus IPS starten?

Was soll denn passieren?

Ich hätte erwartet, dass der VLC das Video, was er auf /dev/video0 empfängt abspielt. Richtig?

Dann ist das Problem, dass unter IPS nicht bekannt ist, auf welchem x-Server (also auf welcher grafischen Oberfläche) der VLC player angezeigt werden soll.
Ist meine Annahme richtig?
Dann muss noch so etwas wie „export DISPLAY=0.0“ dazu, und auf dem Display 0.0 muss per „xhost“ erlaubt werden, dass etwas angezeigt werden darf.

Gruß,
Thorsten

ja richtig,
wie müsste das Skript abgeändert werden damit es im gewünschten Fenster angezeigt wird?
exec /usr/bin/cvlc v4l2:///dev/video0 & export DISPLAY.0:0
xhost + ist gesetzt
bringt leider auch kein Ergebnis.

Hallo,

eher andersrum. Es muss ja vor dem Starten des VLC klar sein auf welches Display das muss :wink:


#!/bin/bash
rm /opt/IPS_Skripte/cvlc.pid                   # vorhandene Datei löschen
echo $$ > /opt/IPS_Skripte/cvlc.pid       # Pid in datei schreiben
export DISPLAY=localhost:0.0              # Display Setzen
exec /usr/bin/cvlc  v4l2:///dev/video0    # vlc staten

oder „DISPALY=:0 && exec /usr/bin/cvlc v4l2:///dev/video0“ könnte auch gehen.

Schau mal am besten bei google, da gibt es diverse Anleitungen:
How to export your X Display
Linux - Grafisches System X

Gruß,
Thorsten

leider funktioniert es in den unterschiedlichsten Kombinationen nicht. :confused::confused:
mit

system("display=:0.0 su -c  'cvlc v4l2:///dev/video0 ' testuser ");

startet der vlc als Prozess im Hintergrund, wird aber nicht angezeigt.

Könnte das bitte jemand testen?

(mit Windows und ips3 gab’s an der stelle keine Probleme)
Ebenso habe ich motion installiert. funktioniert ohne Probleme macht was es soll, lässt sich aber leider nicht im Dashboard als webimage (zeigt nix an) oder als webbrowser (ole Problem ) einbinden.

danke und Gruss Tom_

Hallo,

Bei Linux ist es extrem wichtig auf Groß- und Kleinschreibung zu achten.
„DISPLAY“ und nicht „display“!

Keine Ahnung ob das wirklich das Problem ist, aber es war das Erste was mir aufgefallen ist.

Gruß,
Thorsten

funktioniert leider auch nicht. das verhalten ist gleich.

Würdest du das bitte einmal bei dir testen? Würde mich echt freuen.

Danke und GrußTom_

Hallo,

was ein Aufwand, denn ich habe gar kein Display am Raspi :smiley:

Was ich aber habe ist ein vncserver auf Display 1 auf einer anderen Linux Kiste.
Daher ein „xhost +“ auf dem X gemacht und im IPS folgendes ausgeführt:


system("DISPLAY=filer.fritz.box:1.0 su -c 'xeyes' root");

wobei das „su -c“ überflüssig ist, denn ich bin ja schon root :wink:

Geht aber.


system("DISPLAY=filer.fritz.box:0.0 su -c 'xeyes' root");

Geht nicht. Ohne Fehlermeldung. Das liegt daran, dass system STDERR ignoriert.


system("DISPLAY=filer.fritz.box:0.0 su -c 'xeyes' root 2>&1");

(2 entspricht STDERR und 1 STDOUT; mit >& hängst Du also STDERR an STDOUT dran)
hingegen gibt „Error: Can’t open display: filer.fritz.box:0.0“ aus.

Vielleicht solltst Du das mal tun.

Gruß,
Thorsten