Read the statement by Michael Teeuw here.
MMM-MplayerRadio
-
Hi,
my problem is that i messed up my audio configuration as i tried to configure pulseaudio to make it possible to play music either on my local HifiBerry speakers or on a bluetooth speaker.
Mplayer still works fine but i can`t get any sound from xmms2.
The other problem is that there are a lot of known problems of xmms2 but xmms2 is dead since 2017.
Thats why i tried omxplayer which is still maintained.Currently the module supports local playlist files but not calling any other player. You can change the binary that is called but it still sets the args as mplayer will need it.
-
@wishmaster270 Ok, I find a easy way to play a web radio with xmms2 player from a executable .sh file for that I ask you to tell me how I can run that file from your module. Now is not working my radios with mplayer.
-
It pushed a new development version to the repo.
You can change to it if you do the following commands:cd ~/MagicMirror/modules/MMM-MplayerRadio git checkout development git pull
In the new version you can add “customCommand” and “customCommandArgs” to either the whole module or to every station.
You then can use any script you like to play either all stations (by passing the url to it) or a special script for each station.Example:
{ module: "MMM-MplayerRadio", header: "Radio", position: "top_center", config: { customCommand: "/home/pi/doSomething.bash", customCommandArgs: ["one", "two", "###URL###"], stations: [ { title: "Antenne.de", url: "http://www.surfmusik.de/m3u/antenne-bayern,922.m3u", logo: "https://upload.wikimedia.org/wikipedia/commons/a/ac/Antenne-bayern-logo.png", customCommand: "/home/pi/doSomethingElse.bash", customCommandArgs: ["one", "###URL###", "three"], }, ], }, },
In this example for all stations the script “/home/pi/doSomething.bash one two http://…” is called.
But “Antenne.de” uses the script “/home/pi/doSomethingElse.bash” with different args.The only condition the customCommand-Script needs to meet is that it stays active as long as the station is running and stops the playback if it gets killed.
-
@wishmaster270 Now if I put this in the config file:
{ module: "MMM-MplayerRadio", header: "Radio", position: "top_center", config: { customCommand: "", customCommandArgs: ["", "", ""], stations: [ { title: "KissFM", url: "", logo: "https://upload.wikimedia.org/wikipedia/ro/8/86/Logo_Kiss_FM.png", customCommand: "/home/pi/MagicMirror/modules/MMM-MplayerRadio/scripts/KissFM.sh", customCommandArgs: ["", "", ""], }, ], }, },
and this in KissFM.sh
#!/bin/bash xmms2 stop xmms2 clear xmms2 add https://live.kissfm.ro/kissfm.aacp xmms2 play
it’s working when i want to start radio but nothing happens when i touch the stop button just a short flickering of your module(I use a 10" touchescreen).
Thank you. -
Hi,
as i wrote in the documentation you need to make sure that your script runs as long as the station is active and needs to stop the playback if it gets a kill signal.
Maybe i will find a short tutorial about catching the kill signal. -
If you change your script to (playRadio.bash):
#!/bin/bash URL=$1 RUN=1 exit_script() { echo "Stopping playback" xmms2 stop xmms2 clear RUN=0 } trap exit_script SIGINT SIGTERM xmms2 stop xmms2 clear xmms2 add $URL xmms2 play while [ $RUN -gt 0 ]; do echo "Still running" sleep 1 done
and the config to
{ module: "MMM-MplayerRadio", header: "Radio", position: "top_center", config: { stations: [ { title: "KissFM", url: "https://live.kissfm.ro/kissfm.aacp", logo: "https://upload.wikimedia.org/wikipedia/ro/8/86/Logo_Kiss_FM.png", customCommand: "/home/pi/MagicMirror/modules/MMM-MplayerRadio/scripts/playRadio.bash", customCommandArgs: ["###URL###"], }, ], }, },
You can then reuse the same script for different stations only by adding the url as first parameter in the config
Edit: Added url back to the config
-
@wishmaster270 it’s working now thanks.
-
@electros Perfect.
I think I will check in the script into the repository so you can easy update to upcoming versions -
@wishmaster270 Thank you
-
@wishmaster270 Hi, I’m newbie and know almost nothing about coding. I have installed your module successfully, but what should I do to start it (without touchscreen)? It is shown on my mirror but not played. I put only one Station.
I want to start it automatically if I start my mirror.
Thanks.