Mettre plusieurs players audio sur une page ?

Résolu/Fermé
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 30 mars 2022 à 07:04
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 6 avril 2022 à 17:38
Bonjour à tous,
Quand j'avais construit cette page c'était pour faire du streaming via Réal Player. Les fichiers étaient au format ra avec un fichier texte indiquant l'emplacement du fichier musical et se lançait automatiquement dans un lecteur Réal Player. Vieille technologie je l'avoue.
Liste des musiques basques
Aujourd'hui j'ai un script en html5 HTML 5 Balise audio (voir DEMO juste en dessous du script).

Ma question est:
Comment afficher le lecteur avec sa barre de commande, qui serait caché au départ, soit sur cette même page ou une autre en cliquant sur un des liens de la liste.
N'importe quelle solution serait la bienvenue !

Je ne vois pas trop comment faire.
Je dois faire la même chose avec des chants basques.

Merci beaucoup d'avance !

Configuration: Windows / Firefox 98.0.2

--
Le bonheur est la seule chose que l'on peut donner sans l'avoir.
A voir également:

6 réponses

txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
Modifié le 30 mars 2022 à 12:15
Salut à tous,
Voici la page contenant le player toujours apparent pour le moment mais sans la balise div.
Puis l'autre dans un
<div id="Layer1"
mais non encore publiée
Cherchez l'erreur ???
Autre chose étrange, la liste est en gras sauf le lien de la musique donc du player.
J'aurais bien aimé y mettre tous les players mais masqués, a afficher uniquement en cliquant sur un lien.
Est-ce possible ?
Note: le script se trouve dans un calque (div chez dreamweaver).
Merci encore !
0
Bonjour,

Le mieux-il n'y a pas vraiment d'autres alternatives- est de passer par la programmation pour modifier le HTML avec JavaScript, ou de trouver un script de lecteur prêt à l'emploi.

Pourquoi pas plutôt un lecteur unique qui change les fichiers à lire, ça me paraît plus logique que d'avoir à charger plusieurs fichiers+API audio qui serviront pas en même ou alors bonjour le boucan...

ça pourrais ressembler à ça:


var audio = document.createElement('audio'),//-- création de l'élément AUDIO(dans le DOM mais pas encore inclus dans la page)
 playlist = document.createElement('select'),//-- création d'un select
 tracks =[];//-- un tableau qui va retenir les noms des pistes selon le format(mp3 et ogg)
 
function ajoutPlaylist(mp3,ogg=null){//-- un fonction qui remplit le tableau tracks en ajoutant à chaque fois un objet qui a deux attributs/valurs: mp3: l'URL du fichier mp3 et ogg l'URL du fichier ogg
       tracks.push( {mp3:mp3, ogg:ogg} ) //-- un objet en notation llittéral(ou JSON) entre accolades
}

function loadAudio(listMp3, listOgg){//-- les paramètres sont deux tableaux de même dimension(.length)
 for(var i=0, len=listMp3.length; i<len; i++){
  let pisteM=listMp3[i] !==null ? listMp3[i] :null;//-- comparaison ternaire équivalent de "if" else" mais sur une ligne avec moins de mots//pisteM vaut list[i].ogg ou null
  let pisteO=listOgg[i] !==null ? listOgg[i] :null;
  ajoutPlaylist(pisteM, pisteO)
  let opt=document.createElement('option')
  if( tracks[tracks.length-1].mp3 !==null ){//-- tracks.length indiquent la longueur(nombre d'éléments) du tableau, - car il commence à la valeur zéro
   opt.innerHTML=tracks[tracks.length-1].mp3.substring(0, tracks[tracks.length-1].mp3.lastIndexOf('.') )//--coupe la chaîne pour ne garder que ce qui est avant le dernier '.' du nom du fichier
   opt.setAttribute('value', i )//-- l'attribut value contient l'indice du tableau tracks de la piste
  }else{
   opt.innerHTML=tracks[tracks.length-1].ogg.substring(0, tracks[length-1].ogg.lastIndexOf('.') )
   opt.setAttribute('value', tracks[tracks.length-1] )
  }
  playlist.appendChild(opt)
  console.log(opt)
 }
}


function choixPiste(index){
 var isMp3 = tracks[index].mp3 !==null ? '<source src='+tracks[index].mp3+' type="audio/mpeg" >':''; //-- encore la notaion ternaire de IF ELSE qui est bien pratique une fois qu'on s'y est habitué
 var isOgg = tracks[index].ogg !==null ? '<source src='+tracks[index].ogg+' type="audio/ogg" >':''; //-- encore la notaion ternaire de IF ELSE qui est bien pratique une fois qu'on s'y est habitué
 audio.innerHTML=isMp3+''+isOgg
}

audio.id='lecteur'
audio.controls=true;//-- active les contrôles, équivalent dans le HTML de <audio controls >
playlist.id='playlist'

document.body.appendChild(audio)//-- ajoute l'élément audio dans la page
document.body.appendChild(playlist)//-- ajoute l'élément select dans la page

loadAudio(['chanson0.mp3', 'chanson1.mp3' , 'chanson3.mp3'],['chanson0.ogg', 'chanson1.ogg' , 'chanson2.ogg'] )

playlist.addEventListener('change',function(e){
 console.log('option changée: '+e.target.innerHTML)
 choixPiste(e.target.value)
})



Bien sûr ça peut mieux s'organiser au niveau des fonctions(pour éviter les répétitions) ainsi qu'à améliorer selon ses besoins. Là c'est une base vite fait pour donner une idée(et laissez tomber dreamweaver: faire du HTML c'est du texte, faire du CSS aussi, faire du JavaScript c'est réfléchir avant d'écrire du texte... donc vous n'avez besoin que du mode éditeur de Dream qui est simplement écrire du texte(et virez tous les autres trucs que rajoute Dreamweaver pour les faire à la main et que ça reste lisible par un humain...ce qui n'est pas le cas d'un 'code' généré automatiquement).

Même chose pour les contrôles/ l'apparence on peut styler ça avec CSS, rajouter audio.play() pour lire le fichier choisit directement, etc...
Quelques autres exemples:
https://www.w3schools.com/jsref/dom_obj_audio.asp


ps:je n'ai pas testé avec de vrais musiques mais il n'y a pas de raison pour que cela ne fonctionne pas.C'est tout simple: une liste des adresses des fichiers est utilisé pôur remplir un menu déroulant. Au changement dans le menu on écrit dans le lecteur la piste en mp3 et sa version alternative ogg, là il n'y a plus qu'a appuyé sur lecture.
0
à tester entre des balises scripts ou dans un fichier externe ".js" chargé dans le HTML.

Pour le premier cas ajouter le script au dessus à la suite et refermer les balises <script>, <body> et <html> dans cet ordre là.

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>

0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
Modifié le 1 avril 2022 à 09:19
Salut DesReliques,
Désolé pour le retard mais j'ai plein de problèmes sur mon site dont je ne m'étais pas rendu compte, ne regardant pas cette partie, sections du site abarka.
J'ai donc utilisé un script du Quizz basque que je suis en train de tester .
J'ai des CSS et JS.
Le script ci-dessous (que je ne maitrise pas trop) mais ces lignes se suivent dans la page (.js + .htm) et concerne le quizz cité plus haut et qui fonctionne très bien:
<!-- Début de la boite frame pour le player audio dans le pop up -->
<script language="JavaScript" type="text/JavaScript">
//<![CDATA[
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
//]]>
</script>
<script type="text/javascript">
//<![CDATA[

<!--  Script de Rad Zone pur afficher les images via un lien
var subs_array = new Array("sub1","sub2","sub3","sub4","sub5","sub6","sub7","sub8","sub9","sub10","sub11","sub12");
function displaySubs(the_sub){
        if (document.getElementById(the_sub).style.display==""){
        document.getElementById(the_sub).style.display = "none";return
  }
  for (i=0;i<subs_array.length;i++){
        var my_sub = document.getElementById(subs_array[i]);
        my_sub.style.display = "none";
        }
  document.getElementById(the_sub).style.display = "";
  }
//  End -->
//]]>
</script>

<div id="pop" style="border: 3px outset ; position: absolute; left: 1000px; top: 1000px; display: none; z-index: 200; background-color: rgb(0, 0, 0 );">                     
<div id="tet" onmousedown="dx=px-gdim.offsetLeft;dy=py-gdim.offsetTop;drag=1;" onmouseup="drag=0" style="padding: 0pt 20px 0pt 0.5em; cursor: move; background-color: rgb(0, 0, 0); line-height: 18px; color: white; font-size: 12px; font-family: Helvetica,Arial;">entete                           
<img title=" Fermer " src="../Fiches_pottok/fermer.gif" onclick="voirSelect('visible');gdim.style.display='none'" style="margin: 1px; cursor: default; position: absolute; right: 0pt; top: 0pt;" height="8" width="16" />                     
</div>                     
          <img style="border: 0pt none ; margin: 1px;" />                 
</div>
<h4 align="center"> Ator Ator</h4>
<table border="0" cellspacing="0" align="center" width="60%">
<tr> 
<td> 
<audio controls>
	<source src="/Downloads/Musiques/Chants/Ator_Ator.mp3" type="audio/mpeg">
	<source src="/Downloads/Musiques/Chants/Ator_Ator.wma" type="audio/wma">
	Votre navigateur ne supporte pas la balise audio.
</audio>
</td>
</tr>
</table>

Merci beaucoup pour tes exemples que je garde précieusement !

0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
1 avril 2022 à 10:24
Salut à tous,
Eh bien je viens de refaire , corriger le css pour la largeur des pages (90% au lieu de 880px) à cause de l'image du bandeau et la largeur du menu.
Je cherche a centrer les <form> mais c'est pas simple.

Au fait, a celui qui m'a dit de ne pas utiliser Dreamweaver, je corrige les codes générés moi même (2 écrans, un pour créer la page et le second pour l'affichage du code qui me permet de voir le code au fur et a mesure d'ou la correction possible dès le départ.
Merci encore.
0
Euh autre questions alors....
Pour CSS il y a plusieurs façons de faire le positionnement.
Pour un centrage on peut utiliser les marges et la dimension: 2 marges à droite et à gauche et l'espace restant = centré horizontalement (exemple 10% à gauche 80% taille de l'élément = centré)

Mais bon c'est un autre sujet, vous parliez de lecteur AUDIO non?
Une question à la fois.
Est ce réglé, avez vous compris l'intérêt de un seul lecteur qui change le fichier VS un fichier à charger par chanson à jouer?
Testé mon code, sans utiliser Dreamweaver et l'avoir compris surtout pour rajouter la lecture en cliquant sur la liste select?

"a celui qui m'a dit de ne pas utiliser Dreamweaver, je corrige les codes générés moi même (2 écrans, un pour créer la page et le second pour l'affichage du code qui me permet de voir le code au fur et a mesure d'ou la correction possible dès le départ. "

Pas très bien compris....vous parlez bien de mon script?
Il me semble que plutôt que d'avoir à corriger un code avec des 'erreurs' il est plus rapide et mieux d'écrire directement un bon code.
2 écrans n'a rien à voir, l'idée c'est de savoir ce que vous faites et d'être capable de le faire.
Travailler en WYSIWYG vous empêche de faire cela car n'incite pas à la réflexion ni même à séparer l'apparence des données.

Soyons sérieux un moment. Vous posez une question sur un lecteur multimédia pour de l'audio. Je vous ai montré un élément de réponse de façon didactique...et vous me parlez de centrer un élément en CSS.
La seule réponse c'est d'apprendre à écrire CSS(et non demander à un programme de le faire automatiquement ce qui ne peut pas fonctionner = donc à jeter les outils du genre Dreamweaver si c'est pour travailler en visuel sur l'écriture de textes/script c'est simplement un très mauvais outil avec une approche qui n'est pas cohérente avec la réalité des langages/d'une page web ) mais ce n'est pas la réponse à l'utilisation de l'API audio avec JavaScript.
0
DesReliques > DesReliques
Modifié le 1 avril 2022 à 13:21
Pour moi les trois questions ont une réponse similaire:
comment faire un centrage : en apprenant CSS
comment gérer mon API Audio : en apprenant JavaScript
comment apprendre à faire un quizz: JavaScript.

Tant que vous n'aurez pas compris que ce que fait Dreamweaver c'est le contraire de ce qui doit être fait et ne vous permet pas d'apprendre(et donc laisser tomber leurs scripts pré-générés et l'approche WYSIWYG qui ne sont toute façon pas bonne = mauvais site au résultat) pour commencer à vous retrousser les manches:
apprendre à écrire par vous même au lieu de faire réfléchir un logiciel à votre place qui le fera très mal et ne sait même pas ce que vous voulez, pouvez imaginer ou créer.

Pour apprendre il faut commencer par les bases: HTML , CSS, JavaScript dans cet ordre là, CSS s'appuie sur HTML et JavaScript permet de manipuler HTML et CSS.

Si pour les premiers ce sont des langages de descriptions assez simple(20 minutes chacun de lecture pour comprendre) JavaScript c'est de la programmation.
Avec une approche logique(oui/non, vrai/faux) et séquentielle(+objet+événementielle) pour résoudre une question et automatiser des traitements(algorithme) ....bref pas quelque chose qui peut être improvisé à la place d'un humain par un programme mais qui se réfléchit construit et à une cohérence(qui garantit que ça fonctionne et pour le but voulu).

Voilà comme c'est long à écrire j'ai préféré vous donner un exemple à tester vous même qui vous fera acquérir certaines de ces bases ou vous forcera à chercher pour les comprendre...
Mais bon avez vous essayé et reproduit ma réponse comme je l'ai proposé dès le début?
Qe la réponse vous convienne ou pas c'est la meilleure que vous pourrez avoir: pour savoir il faut commence par apprendre.
En décortiquant mon code (et en le comprenant donc) vous aurez toutes les réponses à votre question sur comment utiliser audio...bien sûr avec des bases qu'on est pas là pour vous fournir: "apprendre JavaScript débutant" par exemple dans une recherche Google.

Pour le positionnement cela se fait en CSS donc apprenez CSS et pratiquez les méthodes de positionnement(qui sont diverses).

Pour faire un quiz il faudra probablement faire appel à de la programmation ne serait ce que pour tester si une réponse est vraie ou fausse. Donc probablement une partie JavaScript qui manipulera les questionnaires de la page(form et inputs) et traitera les questions; donc HTML, CSS et JavaScript conjointement.

Plutôt que de noter cela:
<!--  Script de Rad Zone pur afficher les images via un lien

Il vaudrait mieux comprendre ce que fait et pourquoi le script fait comme cela. Histoire de pouvoir le refaire ou réutiliser dans un autre contexte.
Sans savoir et comprendre vous ne pouvez pas arriver à faire. DW vous en empêche et n'est plus un outil valable depuis une quinzaine d'années, ne l'a jamais été pour faire des sites de type RIA ou n'importe quel site moderne qui aurait une ambition sur plus d'1 semaine.


Où en êtes vous? Combien de temps avez vous passer à apprendre chacun es langages.
Il existe des cours en ligne et tutos assez nombreux sur ces sujets qui vous aideront à comprendre mon exemple où vous bloquez. Mais oui il faudra vous retrousser les manches plutôt que de rester avec DW à produire des sites de piètre qualité à partir d'une mise en page visuelle.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
1 avril 2022 à 14:43
Bonjour DesReliques,
C'est vrai je mélange beaucoup de choses.
"Mais bon c'est un autre sujet, vous parliez de lecteur AUDIO non?" Oui, J'ai réussi a le faire marcher mais le lecteur s’affiche en bas de la liste d’où ma question de départ.
Pas très bien compris....vous parlez bien de mon script? : Non, pas encore testé. Mon site est très ancien et pas touché depuis quelques années mais fonctionnait très bien sauf les section ou il y a des animations en .swf (que je viens de supprimer, je ne savais pas qu'ils étaient obsolètes). J'ai été très malade.
J'ai cependant réussi a convertir les vidéos. Je faisais des streaming à une époque ou cela n'éxistait pas avec des fichiers hébergés chez un FAI sauf chez le mien, y compris les musiques et les chants (avec Real Player).

Les CSS c'est moi qui les écrit, pas Dreamweaver que j'utilise uniquement pour la coloration syntaxique et l'indentation. Ça permet de voir les erreurs éventuelles.

Idem pour le script de Rad Zone que j'ai entièrement ré-adapté mais je ne suis pas capable d'écrire du javascript, seulement de modifier certaines choses.

Merci beaucoup quand même!
Quand a ton script bien sur que je vais le tester. Pour le moment j'essaie de réparer mon site et de le ré-organiser.
0
txiki Messages postés 6597 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 515
6 avril 2022 à 17:38
DesReliques,
Je ne m'attendais pas a un roman.
Je clos la discussion.
Merci quand même !
0