Bonjour à toutes et à tous,
Je voudrais diffuser des extraits musicaux d'un groupe,
à partir d'un site, en utilisant le streaming audio.
Est-ce réalisable à partir de JavaScript ou PHP ?
Bonjour à toutes et à tous,
Je voudrais diffuser des extraits musicaux d'un groupe,
à partir d'un site, en utilisant le streaming audio.
Est-ce réalisable à partir de JavaScript ou PHP ?
le streaming est un type d'encodage, rien à voir avec de la programmation !
ce n'est rien que de l'encodage?Envoyé par Oluha
ce n'est pas aussi le fait que le serveur envoit un flux unicast vers le client, de ce fait, le client peut regarder la vidéo/jouer le son avant même que le "telechargement" soit fini
ou bien je me trompe.
car le streaming de type encodage, c'est un streaming qui encode "on the fly" ce qui a pour avantage de donner au client la possibilité de lire n'importe quel fichier quelque soit le format natif demandé
sinon pour répondre a la question demandée, oui c'est possible (si j'ai bien compris la notion de streaming)
tu mets betement l'objet WMP qui stream automatiquement ou bien tu utilises uMediaServer qui lui encode "on the fly"
bien entendu il faut que le serveur qui héberge accepte le streaming mais ca n'a rien à voir avec javascript ou php !
oui tu as raison mais je crois qu'il demande si via la programmation, c'est possible de piloter un lecteur afin de streamer de l'audio, non?Envoyé par Oluha
Merci Oluha et Dnx pour vos réponses et vos éclaircisements.
Oui, c'est ça.Envoyé par Dnx
![]()
Je voudrais faire en sorte que WMP commence
la lecure des extraits avant de les avoir totalement chargé
et également contrôler l'arrêt et le lancement de la lecture.
J'ai adapté un bout de code trouvé ici,
mais je n'arrive pas à mes fins.
Rien ne se passe, pas de lecture...
J'avoue que j'ai du mal avec la balise
<object...>...</object> et ses attributs.![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php if(isset($_GET['tit'])){ echo' <OBJECT ID="MediaPlayer" CLASSID="CLSID:22d6f312-b0f6-1d0-94ab-0080c74c7e95" TYPE="application/x-oleobject" WIDTH="0" HEIGHT="0" STYLE="position:absolute; left:0px; top:0px; z-index:0;"> <PARAM NAME="' . $_GET['tit'] . '" VALUE="' . 'mp3/' . $_GET['tit'] . '.mp3' . '"> <PARAM NAME="ShowControls" VALUE="1"> <PARAM NAME="ShowStatusBar" VALUE="1"> </OBJECT>' ; } ?>
Je ne crois pas que PHP gère celà vu que ce n'est pas le serveur!
Il faut un serveur spécifique comme Flash Communication pour le streaming en Flash!
je ne m'y connais pas en PHP mais j'ai réussi à le faire tourner client-side en asp.netEnvoyé par GritNatz
voila l'objet WMP
tu peux constater ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <OBJECT id="Player1" style="Z-INDEX: 104; LEFT: 8px; WIDTH: 432px; POSITION: absolute; TOP: 8px; HEIGHT: 320px" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" VIEWASTEXT> <PARAM NAME="URL" VALUE="<%=file2Play%>"> <PARAM NAME="rate" VALUE="1"> <PARAM NAME="balance" VALUE="0"> <PARAM NAME="currentPosition" VALUE="0"> <PARAM NAME="defaultFrame" VALUE=""> <PARAM NAME="playCount" VALUE="1"> <PARAM NAME="autoStart" VALUE="-1"> <PARAM NAME="currentMarker" VALUE="0"> <PARAM NAME="invokeURLs" VALUE="-1"> <PARAM NAME="baseURL" VALUE=""> <PARAM NAME="volume" VALUE="100"> <PARAM NAME="mute" VALUE="0"> <PARAM NAME="uiMode" VALUE="full"> <PARAM NAME="stretchToFit" VALUE="0"> <PARAM NAME="windowlessVideo" VALUE="0"> <PARAM NAME="enabled" VALUE="-1"> <PARAM NAME="enableContextMenu" VALUE="-1"> <PARAM NAME="fullScreen" VALUE="0"> <PARAM NAME="SAMIStyle" VALUE=""> <PARAM NAME="SAMILang" VALUE=""> <PARAM NAME="SAMIFilename" VALUE=""> <PARAM NAME="captioningID" VALUE=""> <PARAM NAME="enableErrorDialogs" VALUE="0"> <PARAM NAME="_cx" VALUE="11430"> <PARAM NAME="_cy" VALUE="8467"> </OBJECT>
en fait c'est propre a asp.net car il va chercher la variable "file2play" server-side et donc déclaré de manière publique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <%=file2Play%>
je ne sais pas si ca va te permettre d'avancer mais ca peut donner quelques pistes...
bàt
ou bien utilises Umediaserver
il propose des codes en javascript (donc universel) et ca stream super bien!
ici : http://www.umediaserver.net/
Il y a quelque chose que je ne dois pas comprendre.
VALUE doit bien être affectée
Code : Sélectionner tout - Visualiser dans une fenêtre à part <PARAM NAME="URL" VALUE="<%=file2Play%>">
avec l'URL du fichier à jouer ?!
Je l'affecte dynamiquement avec PHP et
lorsque j'affiche la source, la syntaxe est correcte.
Cependant rien ne s'ouvre, même pas le lecteur.
Dois-je placer une dll ou un ActiveX
dans un repertoire de mon site ?
Aprés être allé faire un tour ici,
j'ai modifiéen
Code : Sélectionner tout - Visualiser dans une fenêtre à part <PARAM NAME="URL" VALUE="TITRE_X.mp3">et là j'ai un début de résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <PARAM NAME="Filename" VALUE="TITRE_X.mp3">
Le player s'ouvre et joue le MP3 choisi.
Reste à essayer en 'distant'.
oui en fait le file2play chez moi corresponda une URL de type "\ \ipdistante\rep\file.mpg"
a mon avis ce sera le meme pour toi
reste a voir si tu as les droits d'accès?
Aucun problème pour les droits d'accès,
les extraits sont sur un hébergement perso.
Par contre, je me suis 'réjouis' trop vite.
Plus de problèmes pour ouvir le player
et lire un titre sur Opera.
En ce qui concerne I.E. le player s'ouvre
mais ne joue pas le morceau.
Sur FireFox, le player ne s'ouvre pas
et bien entendu le morceau ne démarre pas.
Voici le code 'allégé' qui fonctionne sur Opera.
Comment adapter ce code pour le faire fonctionner sur I.E. et Opera ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ...du code... <?php if(isset($_GET['tit'])){ echo' <OBJECT ID = "player" STYLE = "width:400px ;height:45px ;position:absolute ;bottom:20px ;left:27px ;z-index:30 ;" CLASSID = "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" TYPE = "application/x-oleobject"> <PARAM name = "fileName" value = "' . 'mp3/' . $_GET['tit'] . '.mp3" /> <PARAM name = "autoStart" value = "true" /> </OBJECT>' ; } ?> ...du code...
J'ai navigué sur plusieurs sites diffusant
des médias avec WinMediaPlayer
afin de voir le code source des pages.
J'ai réussi à faire quelquechose qui fonctionne
presque correctement (barre d'avancement immobile)
sur Opera et FireFox mais I.E. ne daigne
toujours pas jouer l'extrait séléctionné
bien que le player soit affiché(mais les boutons
sont innactifs).
Si j'affecte la valeur audio/mpeg à l'attribut type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <object ID = "player" style = "width:400px ;height:45px ;position:absolute ;bottom:20px ;left:27px ;z-index:30 ;" classid = "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" type="audio/mpeg" > <param name = "fileName" value = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : '' ; ?>" /> <param name = "autoStart" value = "true" /> <embed src = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : '' ; ?>" type="application/x-mplayer2" autostart = "true" "width:400px ;height:45px ;position:absolute ;bottom:20px ;left:27px ;z-index:30 ;" > </embed> </object>
de la balise <EMBED></EMBED> le player ne s'affiche pas
sous FireFox.
Comment faire fonctionner le player sous I.E. ?![]()
Je suis arrivé à mes fins pour l'instant.
Le problème du non fonctionnement sur I.E.
a été réglé en remplaçant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <param name = "FileName" value = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : ''; ?>" /> par <param name = "URL" value = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : ''; ?>" />
J'ai finalement composé un code cross-browsers
(Opera, FireFox, Netscape, Mozilla, et I.E.)
et le 'streaming' fonctionne.
Cependant toute suggestion d'optimisation
ou d'allègement sera la bienvenue
J'en conviens, le code fait un peu usine à gaz...![]()
Pour tester en live, c'est ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <object classid = "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" type = "audio/mpeg" style = "width:400px;height:63px;position:absolute;bottom:20px;left:27px;z-index:30;" > <param name = "URL" value = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : ''; ?>" /> <param name = "autoStart" value = "true" /> <script type = "text/javascript"> embed_base_str = '<embed id = "player" ';//Creation du code de base pour la balise <embed></embed> embed_base_str += 'src = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : ''; ?>" '; embed_base_str += 'type="application/x-mplayer2" autostart = "1" showcontrols = "1"'; embed_base_str += 'ShowStatusBar = "1" enabled = "true" '; embed_base_str += 'style = "width:400px;height:65px;position:absolute;z-index:30;'; if(nav != 'ie' && nav != 'ope'){//test le nom du navigateur embed_end_str = 'bottom:0px;left:0px;" ></embed>'; //embed_end_str = fin du code pour la balise <embed></embed> selon le nom du navigateur document.write(embed_base_str + embed_end_str); }else{ embed_end_str = 'bottom:20px;left:27px;" ></embed>'; document.write(embed_base_str + embed_end_str); } </script> </object>
Seuls les trois premiers titres sont dispo.
Le site est en construction
Merci à toutes les personnes qui m'ont apporté
leur aide et leurs éclairscissement.
P.S.: je pensais que le streaming était le fait de pouvoir lire un fichier
pendant son prorpe téléchargement.![]()
J'ai modifié le Javascript
de sorte à ce qu'il soit moin lourd
et moin barbare aussi
Avec mes excuses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <object class = "player" classid = "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" type = "audio/mpeg" > <param name = "URL" value = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : ''; ?>" /> <param name = "autoStart" value = "true" /> <param name = "bufferingTime" value = "5" /> <embed id = "player" class = "player" src = "<?php echo isset($_GET['tit'])? 'mp3/' . $_GET['tit'] . '.mp3' : ''; ?>" type="application/x-mplayer2" autostart = "1" showcontrols = "1" ShowStatusBar = "1" > </embed> <script type = "text/javascript"> var player = document.getElementById('player'); if (nav != 'ope' && nav != 'ie'){ player.style.bottom = '0px'; player.style.left = '0px'; } </script> </object>
Sinon, j'ai un soucis avec Mozilla.
La version affchée du media player
est la version 6.4.09.1130 (media player classic)
alors que sous Opera, FireFox, Netscape et I.E.,
c'est la version 9.00.00.3250.
Et de plus la lecture des morceaux
sous Mozilla ne se fait pas en 'streaming'
(le morceau est téléchargé totalement avant lecture).
Est-ce dû à la version du player affichée par Mozilla ?
J'ai résolu mon problème.
J'ai copié les dll suivantes du repertoire
d'installation de Windows Media Player
dans les repertoire plugins de
FireFox et Mozzilla :
-npdsplay.dll
-npdrmv2.dll
-npwmsdrm.dll
Puis j'ai dû modifier le registre
car la version du plugin qui s'affichait
était la 6.4.09.11.30.
J'ai pour ce faire enregistré
puis éxécuté le fichier .reg trouvé ici
*****************Edit*****************
Aprés test, le simple fait d'exécuter
le fichier .reg résoud mon problème.
Pas besoin donc de copier les dll.
*************************************
Maintenant FireFox et Mozzila affichent
la version 9.00.00.3250 du plugin WMP
qui 'stream' comme il faut.
J'ai trouvé toutes les infos ici
Un grand merci à KewlCat (sur Zeb) qui m'a
apporté une aide et un enseignement trés précieux.
Partager