Oneradioplayer

Description

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 ...

Codes Sources

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.