J'ai réalisé ce lecteur suite à la demande d'un membre du site. Je n'ai pas cherché à faire un lecteur performant mais collant à ses besoins. Je le poste ici au cas ou il pourrait interresser d'autres personnes.
pour un lecteur radio performant allez voir plutôt ici:
http://www.ircfr.com/codes/RADIOCAST-PLAYER-V2-RADIO-SHOUTCAST_41735.aspx
Ce lecteur permet d'écouter une radio unique dont l'adresse est mise dans un fichier ini pour faciliter l'accès. Il ne possède aucune interface et ses fonctions se limitent à lecture, pause et stop. il retourne également le titre en cours et à suivre sous la forme d'un signal.
Toute l'aide est fournie dans le zip
Source / Exemple :
on 1:start:{
hmake OneRP 100
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_vorbis.dll))
var %a $dll($OneRP.Amp,PluginManager,load input $shortfn($scriptdirplugins\in_mp3.dll))
var %a $dll($OneRP.Amp,PluginManager,load output $shortfn($scriptdirplugins\out_ds.dll))
}
alias -l OneRP.Amp {
return $shortfn($scriptdirplugins\amp_in.dll)
}
alias OneRP.lecture {
if ($dll($OneRP.Amp,CurrentMusic,status) == ok paused) OneRP.pause
else {
OneRP.stop
var %b $readini($scriptdir/Oneradioplayer.ini,OneRP,adresse)
if $right(%b,3) != ogg {
var %a $dll($OneRP.Amp,Play, $+ %b $+ .mp3)
}
else {
var %a $dll($OneRP.Amp,Play, $+ %b $+ )
}
.timerOneRP -iom 0 1000 OneRP.affcurrent
}
}
alias OneRP.stop {
var %a $dll($OneRP.Amp,Stop,.)
.timerOneRP off
}
alias OneRP.pause {
var %a $dll($OneRP.Amp,CurrentMusic,$iif($mid($dll($OneRP.Amp,CurrentMusic,status),4) == playing,pause,unpause))
}
alias -l OneRP.affcurrent {
var %b $hget(OneRP,stream)
var %a $OneRP.current
if (%b != %a) { .signal OneRP titre %a }
}
alias -l OneRP.current {
if ($mid($dll($OneRP.Amp,CurrentMusic,status),4) != stopped) {
var %a $mid($dll($OneRP.Amp,CurrentMusic,title),4)
var %b $remove(%a,$chr(40),$chr(41),$chr(93),$chr(91),$chr(123),$chr(125))
var %b $numtok(%a,40)
if (($chr(40) isin %a) && (%b > 1) && ($len($gettok(%a,1,40)) > 1) ) {
hadd OneRP stream $gettok(%a,1- $+ $OneRP.testtitreradio(%a) $+ ,40)
var %d = $remove($gettok(%a,$calc($OneRP.testtitreradio(%a) + 1) $+ -,40),$chr(41),$chr(40))
if ($hget(OneRP,stream2) != %d) {
hadd OneRP stream2 %d
}
}
else {
if ((timed out isin %a) || (could not connect isin %a) || (unknown host isin %a)) { }
elseif (([ICY 200 OK] isin %a) || (HTTP/ isin %a)) { hdel OneRP stream2 }
elseif (connecting isin %a) { hdel OneRP stream2 | hadd OneRP stream connection... }
elseif (buffer isin %a) { hdel OneRP stream2 | hadd OneRP stream Mise en mémoire tampon... }
else {
if ($len($hget(OneRP,stream2)) == 0) {
}
hadd OneRP stream $remove(%a,$chr(40),$chr(41))
hadd OneRP stream2 $remove(%a,$chr(40),$chr(41))
}
}
return $hget(OneRP,stream)
}
else OneRP.stop
}
alias -l OneRP.testtitreradio {
var %a $remove($1-,$chr(32))
var %x 2
while %x < $numtok(%a,40) {
if ($right($gettok(%a,%x,40),1) != $chr(41)) goto a4fin
inc %x 1
}
:a4fin
return $calc(%x - 1)
}
Conclusion :
Téléchargez le zip car la source affichée ne suffit pas
En espérant que cela vous soit utile, bonne écoute ...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.