• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af froksen | 20.10.2011 15:38

tradioafspiller - afspil radio via terminalen

Programmering
Hej alle

Har hygget mig med et lille mini projekt, som måske lidt kunstigt, er døbt "tradioafspiller" som står for terminal radio afspiller (Wow opfindsomt!).
Programmet/scriptet er et forsøg på at lave en hurtig og simpel måde hvorpå man kan starte en radio kanal (f.eks. DR P3) uden at skulle enten starte en webbrowser eller et program som amarok, hvilket betyder flere taste tryk og brug af musen osv. (Derved ikke sagt at disse programmer eller tilgange er dårligere eller dårlige - igen lidt credit til cb400f's amarok script!)

Men det at starte en kanal via terminalen er hurtigt især hvis man benytter sig af Yakuake (Qt-baseret) eller Guake (GTK-baseret), som er en "Dropdown terminal" som sikkert findes i din pakkehåndtering. Dette betyder nemlig at man hurtigt, og i princippet kun ved brug af tastaturet, kan starte en radio kanal som f.eks. DR P3 ved at skrive radio afspil drp3 eller Nova.FM ved at skrive radio afspil novafm i terminalen/Yakuake/Guake.
Bruger selv scriptet en del, da jeg ofte hører radio og ja, dovenskaben længe leve :-)

Scriptet er forholdvis stabilt, men er stadigt i en lidt tidlig version - dog har jeg fået god og venlig respons fra nogle af jer der har set mit indlæg på Googe+ om det (Hvilket jeg siger mange tak for :-) )

Konstruktiv kritik og kommentarer modtages gerne, samt hvis nogle vil tilføje flere kanaler er du/I mere end velkommen - det er (IMO) forholdvis enkelt at forstå opbygningen af "kanal oplysningsdelen" i scriptet - og ellers spørg gerne :-)

OBS: Er ikke uddannet programmør eller ligende, så det er sikkert "forkert" lavet og noget slam kode, men har gjort mit bedste :-)

Læs mere på Google Code siden, både vedr. installation og brug: http://code.google.com/p/tradioafspiller/
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer12

# 1

13 år 8 måneder siden

Permalink

Indsendt af marlar den 20. oktober 2011 kl. 16:35

Permalink

Det virker fint, men jeg har

Det virker fint, men jeg har to forslag:

1. Jeg kunne godt tænke mig at player var synlig og dit script gik i baggrunden (eller lukkede efter at have startet playeren)

2. I det mindste skulle man kunne køre det i baggrunden, men det virker af en eller anden grund ikke.
  • Log ind eller opret dig for at tilføje kommentarer

# 2

13 år 8 måneder siden

Permalink

Indsendt af marlar den 20. oktober 2011 kl. 16:43

Permalink

Flere forslag:
"afspil" som

Flere forslag:

"afspil" som default kommando, samt match på enkelte bogstaver så man kunne skrive:

radio kbh
radio klas
radio nyhed

for at afspille hhv.

drp4kbh
drklassisk
drnyheder

Jeg kunne egentligt godt selv tænke mig at komme igang med Python til scriptingbrug (har kun lavet lidt til www). Hvad har du brugt som kilder for at komme igang?
  • Log ind eller opret dig for at tilføje kommentarer

# 3

13 år 8 måneder siden

Permalink

Indsendt af cb400f den 20. oktober 2011 kl. 16:53

Permalink

Du kan starte Amarok +

Du kan starte Amarok + afspilning med eet tastetryk, i hvert fald hvis du har et tastatur med "multimedietaster" :-)
  • Log ind eller opret dig for at tilføje kommentarer

# 4

13 år 8 måneder siden

Permalink

Indsendt af froksen den 20. oktober 2011 kl. 17:25

Permalink

@marlar, Tak for forslagene.

@marlar, Tak for forslagene. Det med at sætte i baggrunden har jeg slet ikke tænkt på - men er da faktisk en god idé. Skyldes nok lidt at jeg altid bare selv har åbnet en ny fane i Yakuake, og så har jeg ikke tænkt videre over det.. Men skal lige undersøge hvordan man måske kan gøre det, for kan godt se at en simpel & efter kommandoen virker ikke..

Det med at forkorte kommandoen, tjoo - det var da egentligt heller ikke dumt, især fordi det alligevel er "afspil" man bruger 9 ud af 10 gange.. Igen, noget jeg vil kigge nærmere på :-)

Puha, har leget med python siden lidt før sommerferien, så det er jo da ikke fordi det er langtid, men har da været igennem en langrække små projekter som aldrig rigtigt er kommet videre end som så. Men ofte har jeg brugt Google søgninger og nogle hjemmesider (lidt hist og pist). Har eksporteret mine python bogmærker, måske kan du bruge nogle af dem: http://dl.dropbox.com/u/196675/pythonbogmaerker.html

Eneste er at du nok bare skal være opmærksom på om du vil kode til python2 eller python3.. Mit radio script er python2, hvilket nok mere bare var fordi jeg hver gang glemmer at openSUSE kører med det som standard og derfor ikke får det tilpasset så det virker med python3.. :-) Men 3'eren er jo fremtiden ;-)

@cb400f, Show off ;-) Det er naturligvis rigtigt :-)
  • Log ind eller opret dig for at tilføje kommentarer

# 5

13 år 8 måneder siden

Permalink

Indsendt af marson den 20. oktober 2011 kl. 20:43

Permalink

#!/usr/bin/python2

En lille forbedring. Tilføj dette i starten af radio.py
#!/usr/bin/python2

Derefter kan du omdøbe radio.py til radio og gør den executable. Nu kan du køre dit python script direkte uden dit ekstra shell script.
  • Log ind eller opret dig for at tilføje kommentarer

# 6

13 år 8 måneder siden

Permalink

Indsendt af froksen den 20. oktober 2011 kl. 20:56

Permalink

Tak for tippet, kendte

#5:
Tak for tippet, kendte jeg ikke.. Det er tilføjet :-)

Desuden har jeg tilføjet at man istedet for at skrive radio afspil drp3, kan nøjes med radio drp3 , tak til marlar for idéen.. :-) Det med at lave det som en baggrundsprocess ligner umiddelbart (såvidt jeg kan se) at jeg skal omskrive det hele til at være en daemon - Men måske er det et godt "get started" projekt for dig marlar? ;-)
  • Log ind eller opret dig for at tilføje kommentarer

# 7

13 år 8 måneder siden

Permalink

Indsendt af marlar den 20. oktober 2011 kl. 21:19

Permalink

Det med at lave det som

#6: Det med at lave det som en baggrundsprocess ligner umiddelbart (såvidt jeg kan se) at jeg skal omskrive det hele til at være en daemon

Mon dog? De fleste programmer kan sættes i baggrunden med & så dit script kan nok også hvis det lige bliver filet lidt :)
  • Log ind eller opret dig for at tilføje kommentarer

# 8

13 år 8 måneder siden

Permalink

Indsendt af marlar den 20. oktober 2011 kl. 21:21

Permalink

Men det at starte en

#0: Men det at starte en kanal via terminalen er hurtigt især hvis man benytter sig af Yakuake (Qt-baseret) eller Guake (GTK-baseret), som er en "Dropdown terminal" som sikkert findes i din pakkehåndtering.

Tak for tippet! Har installeret Guake nu og den er faktisk ret sej!
  • Log ind eller opret dig for at tilføje kommentarer

# 9

13 år 8 måneder siden

Permalink

Indsendt af froksen den 21. oktober 2011 kl. 09:10

Permalink

Jaah, ved jeg.. Hmm..

#7:
Jaah, ved jeg.. Hmm.. har prøvet at lege med forskellige løsninger, men har ikke en direkte løsning endnu. Dog er der en lidt slags "workarround", der dog betyder at du ikke bruger GStreamer til at afspille med, men ohh well..

Det du kan gøre er følgende for at køre radioen i baggrunden:

1) Indstil scriptet til at bruge mplayer/vlc til at afspille med (hvis du vil ændre hvilken afspiller der bruges skriv radio indstil afspiller):
radio indstil gstreamer
(Skriv nej i feltet)

2) Herefter kan du høre det ved at skrive f.eks.
radio afspil drp3 &

Nu hvis du vil afslutte kan du skrive:
a) For at afslutte mplayer (Hvis installeret)
pkill mplayer

b) for at afslutte VLC, som starter som fallback afspiller (hvis installeret)
pkill vlc

Det er ikke perfekt, men det er da en midlertidigt løsning :-)
  • Log ind eller opret dig for at tilføje kommentarer

# 10

13 år 8 måneder siden

Permalink

Indsendt af marson den 21. oktober 2011 kl. 12:42

Permalink

Unix signal handling

#9:
Det handler om unix signal handling. Når man starter en process med & sender man et SIGTSTP signal til processen. Default action er at suspendere program udførslen. Men hvis man sætter programmet til at ignorere dette signal kører det videre uden problemer.

#!/usr/bin/python2
import gst
import signal

#Ignorer SIGTSTP
signal.signal(signal.SIGTSTP,signal.SIG_IGN)

# Afspiller
player = gst.element_factory_make("playbin2", "player")
player.set_property('uri', "http://live-icy.gss.dr.dk:8000/Channel5_HQ.mp3")
player.set_state(gst.STATE_PLAYING)

#Kør uendeligt
while True:
1+1

Dette lille program afspiller P3(tror jeg nok) og hvis man kører det med & tilslut kører det videre i baggrunden.
  • Log ind eller opret dig for at tilføje kommentarer

# 11

13 år 8 måneder siden

Permalink

Indsendt af froksen den 21. oktober 2011 kl. 15:05

Permalink

@marson, har prøvet den

@marson, har prøvet den løsning, dog i stedet for while true brugte jeg while 1>0.. Men problemet er den måde hvorpå jeg har lavet den tjekker hvilken "funktion" der skal afvikles.. For den "while-løsning" kræver at det er den sidste funktion i scriptet. Hvis man sætter baggrunds-funktionen sidst, da vil den ikke blive "indlæst" inden programmet opfanger at den skal afvikle en funktion. Men måske er det bare mig.

Du er mere end velkommen til at prøve at lave det i det "rigtige" script - jeg syntes selv at jeg har gjort et stort nummer ud af at kommentere i koden, netop sådan andre kan hjælpe til :-)
  • Log ind eller opret dig for at tilføje kommentarer

# 12

13 år 8 måneder siden

Permalink

Indsendt af froksen den 23. oktober 2011 kl. 09:55

Permalink

Hej alle
Fandt ud af man

Hej alle

Fandt ud af man kunne lave "plasmoids" ved at bruge Python. Så har forsøgt at lave et widget til "radio scriptet". Det er meget basalt og kan kun benytte GStreamer til afspilling.

Screenshot: https://picasaweb.google.com/lh/photo/IR3TidVLYsssh85vnavghw?feat=direc…

Installation:
* Hent plasmoid fra http://dl.dropbox.com/u/196675/tradioafspiller-plasma.zip
* Herefter åben terminalen og cd'e frem til mappen hvor pakkefilen er.
* Skriv plasmapkg -i tradioafspiller-plasma.zip
Herefter kan plasmoiden tilføjes til skrivebordet ligesom man kender normalt fra KDE - det hedder "tradioafspiller-plasma"


Alternativ installationsmetode:
wget http://dl.dropbox.com/u/196675/tradioafspiller-plasma.zip ; plasmapkg -i tradioafspiller-plasma.zip
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

Gode anmeldelser Zorin OS 17.3 0
Linux App Store Flathub når 3 milliarder downloads 0
llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0

Seneste aktivitet

Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 2
Mest sikker webbrowser 5
Firefox 2
Ingen Mint 4
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Pepsi Challenge 4
"Intet realistisk alternativ" - mig i r*ven 10
Linuxin er nu migreret til Drupal 11 13
Et Dansk alternativ til Facebook 18
Ekstern Blu-ray-brænder, der fungerer med PCLinuxOS 3
Københavns og Aarhus Kommune dropper MS 9
Open Source-eksperimentet 1
Microsoft og Google ud af de danske skoler 2
Udfordringer med lydin på Debian 12 1
ExplainingComputers? 2

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !