Page 1 sur 2

List Winamp

Publié : ven. 17/août/2007 12:59
par MetalOS
Salut tous le monde, quelqu'un peut me dir si il y a possibilité de charger une liste de diffusion Winamp ou shocast (*.pls) dans un programme PB sans installer ou utiliser winamp. Un truc autonomme. Merci.

Publié : ven. 17/août/2007 18:20
par KarLKoX
C'est qu'un bête fichier texte avec les urls/ip des serveurs shoutcast, PB sait ouvrir et même lire le contenu des fichiers :lol:

Publié : ven. 17/août/2007 18:56
par Flype
KarLKoX a écrit :C'est qu'un bête fichier texte avec les urls/ip des serveurs shoutcast, PB sait ouvrir et même lire le contenu des fichiers :lol:
t'es sûr ? trop fort purebasic :lol:

Publié : sam. 18/août/2007 13:58
par MetalOS
Oui KarlKoX c vrais que les fichier *.pls (donc shoutcast) contien un url, mais quand j'essais de le lire il me renvoie vers la page d'administration de la radio web et ne me charge pas ce qu'elle diffuse en musique.

Publié : sam. 18/août/2007 14:27
par Chris
MetalOS a écrit :Oui KarlKoX c vrais que les fichier *.pls (donc shoutcast) contien un url, mais quand j'essais de le lire il me renvoie vers la page d'administration de la radio web et ne me charge pas ce qu'elle diffuse en musique.
Dans ce cas, fallait demander si PB peut lire les shoutcast. Pas si il pouvait charger les url.

Exemple type d'une question mal posée. :roll:

Publié : sam. 18/août/2007 14:28
par KarLKoX
C'est logique, le shoutcast est un protocol et pour l'écouter, il faut la suivre (la norme).
Méthode la plus simple : passer l'url que tu viens de récupérer à WMP.
Méthode moins simple mais plus gratifiante : tout décoder soit même, ça peut se faire en faisant un simple décodeur de streaming en utilisant mpglib puis les fonctions réseaux de PB.

Publié : sam. 18/août/2007 17:20
par MetalOS
Merci pour ta réponse KalrKoX, je vient d'essayer avec WMP mais il n'arrive pas à me lire le liens. je v voir du coté de mgplib si je peut trouver quelque chose. Merci.

Publié : sam. 18/août/2007 17:33
par KarLKoX
Ok, vu que tu as l'air motivé et que tu souhaites utiliser mpglib, il te faudra :

- se connecter au flux,
- avec la connexion, récupérer ce que le serveur t'envoie (icy,br etc ...),
- créer un thread (c'est ce qu'il y a de mieux) qui s'occupera de récupérer le flux, parsing du flux pour voir s'il y a du metadata (streamtitle,streamurl), envoie du paquet au décodeur mpglib,
- envoie du paquet décodé depuis mpglib à directsound (ou autre).

Publié : sam. 18/août/2007 18:33
par MetalOS
Merci pour ces infos presieuses, mais dit voir mpglib est une dll si je me trompe pas, il existe une userlib ? au sinon ou trouver les commande pour l'exploiter. Merci.

Publié : sam. 18/août/2007 18:39
par KarLKoX
mpglib est opensource donc il sufit de la compiler de la façon que tu veux soit sous forme de DLL à appeler dynamiquement soit en la compilant sous la forme d'une lib statique auquel cas il faudra faire les imports nécéssaires.
C'est du code qui compile avec n'importe quel compilateur (gcc, vc++, metroworks ...).

Publié : mer. 02/avr./2008 3:43
par MetalOS
Bon apres de nombreuses recherche sur le net, impossible de trouver ce que je veut. Voici l'adresse qui provient du fichier *.pls

Code : Tout sélectionner

http://208.85.242.37:8000/
Si toutefois quelqu'un peut m'aider ca serais bien cool car la je commence à abandonné.
Je cherche juste à pouvoir ecouter cette radio avec la recupération du titre du morceau jouer. Merci d'avance pour votre aide.

Publié : mer. 02/avr./2008 6:18
par venom
salut MetalOS

voici une petite piste :wink: .

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #String_0
  #String_1
  #Button_0
  #Frame3D_0
EndEnumeration

  If OpenWindow(#Window_0, 0, 0, 480, 70, "pls ++",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    If CreateGadgetList(WindowID(#Window_0))
      Frame3DGadget(#Frame3D_0, 10, 10, 460, 45, "")
      StringGadget(#String_0, 20, 25, 260, 20, "http://208.85.242.37")
      StringGadget(#String_1, 295, 25, 50, 20, "8000")
      ButtonGadget(#Button_0, 360, 25, 100, 20, "connexion")
      
    EndIf
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget 
      Select EventGadget()
      
       Case #Button_0
        soft$ = "wmplayer.exe" ;<---------- on prepart windows media player
        url$ = GetGadgetText(#String_0);<---------- on renvoie le texte dans le string_0
        port$ = GetGadgetText(#String_1);<---------- on renvoie le texte dans le string_1
         Programme = RunProgram(soft$, url$+":"+port$, "", #PB_Program_Open| #PB_Program_Hide);<---------- on fait un runprogram (qui permet d'ouvrir windows media player) et de lui indiquer les identifiants suivant : url$+port$. qui en faite est egale a  (http://208.85.242.37:8000) et voila.

      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
 KillProgram(Programme)
mon code fonctionne très bien mais la je doit partir au taf je n'est pas encore vu la fonction pour quitter un programme après l'avoir executer avec runprogram() et sa sera bon :wink: .




@++

Publié : mer. 02/avr./2008 8:28
par MetalOS
Salut venom est merci pour ta réponse. Y aurrais t'il la possibiliter de faire la même chose que ce que tu à fait mais sans ouvrir le Media player que l'application fait avec purebasic reste autonome ????

Publié : mer. 02/avr./2008 16:07
par venom
Et bien ont peut toujours regarder a sa on ne sais jamais :wink:

[EDIT]
pour le moment j'y arrive avec média player et même en la cachant :P voir le code du dessus :wink: .

mais le faire qu'avec purebasic 8O faudrai au moins trouvé une dll ou lib qui gère le streaming. purebasic en lui même n'intègre pas cette fonction.



@++

Publié : dim. 06/avr./2008 15:41
par MetalOS
Merci venom désoler pour la réponse tardive. Merci pour ta source qui est une bonne piste pour pouvoir ecouter une web radio, mais le problème c que si je veut lire une video avec Media player je coupe l'ecoute de la web radio. Mais je continue à creuser sur ta source. Merci.