Gambas France BETA


Pas de compte ? Incription

lire un .m3u / mp3 en ligne

Ce sujet est résolu.

12
AuteurMessages
Uneo7#1 Posté le 22/7/2013 à 19:24:38
bonjour a tous (et a toute )
bon pour commencer un .m3u est un sorte de mp3 mais version playlist (merci wikipedia) car oui tt le monde ne sais pas ce qu'est un fichier m3u
1
2
3
4
5
6
PUBLIC $Musique AS NEW Music

PUBLIC SUB Button1_Click()

$Musique.Load("[url=http://listen.radionomy.com/xxxxxxxxxxx.m3u]http://listen.radionomy.com/xxxxxxxxxxx.m3u[/url]")
$Musique.Play()


je me demandai si il y avait un moyen de le lire car il me ressors un c'ant reed a chaque foi. j'ai peut être fait tout bêtement une erreur !

Flachy Joe#2 Posté le 22/7/2013 à 23:02:17
Iguane : Il Gambas Uniquement pour Activer ses NEuronesLe fichier m3u contient simplement une URL par ligne, il suffit de le lire comme un fichier texte et de renvoyer chaque ligne à la fonction Load.

Si c'est un fichier au format m3u étendu, il contient aussi des informations que tu peux ignorer en supprimant toutes les lignes qui commencent par #.
;) Flachy Joe ;)
Uneo7#3 Posté le 22/7/2013 à 23:52:33
je viens d’essayer ta méthode mai un peut différemment j'ai ouver le m3u avec un editeur de texte (je savais pas que sa s'ouvrai comme sa ) et j'ai pris le 1 er lien de la liste est toujour la meme erreur il ne peut pas lire le fichier depui l'url (qui j'ai testé avec vlc est parfaitement fonctionnelle) on dirai q'uil n'arrive pas a se co a internet il faut peut etre utiliser le composant http mais la j'y connai rien
Flachy Joe#4 Posté le 23/7/2013 à 19:03:39
Iguane : Il Gambas Uniquement pour Activer ses NEuronesSalut,
tu peux utiliser le composant gb.net.curl, cf la doc : http://gambasdoc.org/help/comp/gb.net.curl/httpclient?en&v3
;) Flachy Joe ;)
Uneo7#5 Posté le 23/7/2013 à 20:11:56
j'ai aucune idée de comment l'utiliser =( est'il vraiment nécessaire d'utiliser ce composant pour lire un flux audio en ligne (via http) ?

ps pour info l'erreur est Couldn't read from 'http://listen.radionomy.com/*******'.
Form1.Form_Open.6
Reivillo#6 Posté le 24/7/2013 à 14:38:24
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonjours Uneo7.

C'est ce genre d'Action que tu veux?

Remplacer le "?", par un "h" dans l'URL pour Tester.'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUBLIC hProcess AS Process

PUBLIC SUB form_Open()

hProcess = SHELL "cvlc ?ttp://listen.radionomy.com/"'

END

PUBLIC SUB Button1_Click()

hProcess.Kill
ME.Close

END

Reivillo.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Uneo7#7 Posté le 24/7/2013 à 18:15:59
non je veux juste lire un m3u (le m3u etant juste une liste de mp3. j'ai donc pris un lien mp3 de cette liste) qui est en ligne est en ligne et gambas refuse de le lire et ressors cette erreur Couldn't read from 'http://listen.radionomy.com/xxxxxxxxxx.mp3'.Form1.Form_Open.6
alors je me demandai si il ne fallait pas utiliser le composant http ou si j’avais tout simplement oublié quelque chose ou fait une erreur

Uneo7
Flachy Joe#8 Posté le 24/7/2013 à 18:24:57
Iguane : Il Gambas Uniquement pour Activer ses NEurones
j'ai aucune idée de comment l'utiliser =(

As tu au moins regardé l'exemple de la doc ?
Il faut enregistrer le tampon (buffer) récupéré dans un fichier temporaire puis passer son chemin à Music.load

Sinon tu peux utiliser la commande wget pour télécharger directement l'URL dans un répertoire temporaire.
(Plus d'info avec "man wget" dans un terminal linux)
;) Flachy Joe ;)
Uneo7#9 Posté le 24/7/2013 à 19:17:08
oui j'ai lu la doc mais je n'ai pas tout compris
ton idée est pas mal je vai essayer
Uneo7#10 Posté le 24/7/2013 à 20:20:33
j'ai essayé ton idée mais je doit mal m'y prendre car le buffer est nul

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
PUBLIC SUB Form_Open()
ME.Center
END


PUBLIC SUB GetFile()

DIM hClient AS HttpClient
DIM sBuffer AS STRING

hClient = NEW HttpClient AS "hClient"
hClient.URL = "[url=http://listen.radionomy.com/xxxxxxxxxx]http://listen.radionomy.com/xxxxxxxxxx[/url]"
hClient.Async = FALSE
hClient.Timeout = 60
hClient.Get
IF hClient.Status < 0 THEN
TextArea1.Insert("ERROR")
ELSE

IF Lof(hClient) THEN sBuffer = READ #hClient, Lof(hClient)
musique.Load(sBuffer)
musique.play()
END IF
END
Flachy Joe#11 Posté le 24/7/2013 à 21:57:29
Iguane : Il Gambas Uniquement pour Activer ses NEurones
Il faut enregistrer le tampon (buffer) récupéré dans un fichier temporaire puis passer son chemin à Music.load

Music.Load demande un nom de fichier, pas les données brutes.
Est-ce que Lof(hClient) est nul ?
;) Flachy Joe ;)
gambix#12 Posté le 25/7/2013 à 09:58:13
Faire simple !Non mais vous ne savez pas utiliser httpclient

Le plus simple est :

HClient.get(null,mytempfile)

Ensuite il faut parser le fichier m3u. Et recommencer avec les liens qu'il contient
Moins de texte dans une signature c'est agrandir son espace.
Uneo7#13 Posté le 25/7/2013 à 11:33:41
Bonjour j'ai essayé ton idée gambix mais toujours la même erreur Couldn't read from '/tmp/player/music.mp3'.Form1.Form_Open.6
j'ai mis plusieurs chemin diffferend dans le tmp dans mon dossier musique sur mon bureau rien =( (tous chmod a 777)
pour les test j'ai directement pris le mp3 dans le m3u donc le lien
pointe direct vers le flux mp3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
DIM hClient AS HttpClient
DIM sBuffer AS STRING
DIM ops AS File
ops = OPEN "/tmp/player/music.mp3" FOR WRITE
hClient = NEW HttpClient AS "hClient"
hClient.URL = "[url=http://listen.radionomy.com/xxxxxxxxxxxx]http://listen.radionomy.com/xxxxxxxxxxxx[/url]"
hClient.Async = FALSE
hClient.Timeout = 60
hClient.get(NULL, "/tmp/player/music.mp3")

TextArea1.Insert("Begin /n")
IF hClient.Status < 0 THEN
TextArea1.Insert("ERROR /n")
ELSE

IF Lof(hClient) THEN sBuffer = READ #hClient, Lof(hClient)

musique.load("/tmp/player/music.mp3")
musique.play()
END IF

TextArea1.Insert("end")
ops.Close()
END

pour Flachy Joe non le hclient n'est pas vide
gambix#14 Posté le 28/7/2013 à 18:12:26
Faire simple !Le problème est je crois qu'il s'agit d'un flux et non de fichiers.

Music.load ne sait pas gérer ça... Donc tu doit utiliser la bibliothèque gb.média
Moins de texte dans une signature c'est agrandir son espace.
Uneo7#15 Posté le 28/7/2013 à 20:13:35
je vais me pencher la dessus
12