¿Colocar varios reproductores de audio en una página?
Resuelto
Hola a todos,
Cuando construí esta página era para hacer streaming a través de Real Player. Los archivos estaban en formato ra con un archivo de texto que indicaba la ubicación del archivo musical y se lanzaba automáticamente en un Reproductor Real. Vieja tecnología, lo admito.
Lista de músicas vascas
Hoy tengo un script en html5 HTML 5 Etiqueta de audio (ver DEMO justo debajo del script).
Mi pregunta es:
¿Cómo mostrar el reproductor con su barra de comandos, que estaría oculta al principio, ya sea en esta misma página o en otra al hacer clic en uno de los enlaces de la lista?
¡Cualquier solución sería bienvenida!
No veo muy claro cómo hacerlo.
Debo hacer lo mismo con cantos vascos.
¡Muchas gracias de antemano!
Configuración: Windows / Firefox 98.0.2
--
La felicidad es la única cosa que se puede dar sin tenerla.
Cuando construí esta página era para hacer streaming a través de Real Player. Los archivos estaban en formato ra con un archivo de texto que indicaba la ubicación del archivo musical y se lanzaba automáticamente en un Reproductor Real. Vieja tecnología, lo admito.
Lista de músicas vascas
Hoy tengo un script en html5 HTML 5 Etiqueta de audio (ver DEMO justo debajo del script).
Mi pregunta es:
¿Cómo mostrar el reproductor con su barra de comandos, que estaría oculta al principio, ya sea en esta misma página o en otra al hacer clic en uno de los enlaces de la lista?
¡Cualquier solución sería bienvenida!
No veo muy claro cómo hacerlo.
Debo hacer lo mismo con cantos vascos.
¡Muchas gracias de antemano!
Configuración: Windows / Firefox 98.0.2
--
La felicidad es la única cosa que se puede dar sin tenerla.
6 respuestas
-
ColaboradorHola a todos,
Aquí está la página que contiene el reproductor siempre visible por el momento, pero sin la etiqueta div.
Luego el otro en un<div id="Layer1"
pero aún no publicado
¿Buscan el error???
Otra cosa extraña, la lista está en negrita excepto el enlace de la música, es decir, del reproductor.
Me habría gustado poner todos los reproductores, pero ocultos, para que se muestren únicamente al hacer clic en un enlace.
¿Es posible?
Nota: el script se encuentra en una capa (div en dreamweaver).
¡Gracias de nuevo!
-
Hola,
Lo mejor—no hay realmente otras alternativas—es recurrir a la programación para modificar el HTML con JavaScript, o encontrar un script de reproductor listo para usar.
¿Por qué no un reproductor único que cambie los archivos a leer? Me parece más lógico que tener que cargar varios archivos + API de audio que no servirán al mismo tiempo, o entonces ¡hola el ruido!
Podría parecerse a esto:
var audio = document.createElement('audio'),//-- creación del elemento AUDIO(dentro del DOM pero aún no incluido en la página) playlist = document.createElement('select'),//-- creación de un select tracks =[];//-- un array que retendrá los nombres de las pistas según el formato(mp3 y ogg) function ajoutPlaylist(mp3,ogg=null){//-- una función que llena el array tracks agregando cada vez un objeto que tiene dos atributos/valores: mp3: la URL del archivo mp3 y ogg la URL del archivo ogg tracks.push( {mp3:mp3, ogg:ogg} ) //-- un objeto en notación literal(o JSON) entre llaves } function loadAudio(listMp3, listOgg){//-- los parámetros son dos arrays de la misma dimensión(.length) for(var i=0, len=listMp3.length; i<len; i++){ let pisteM=listMp3[i] !==null ? listMp3[i] :null;//-- comparación ternaria equivalente a "si" de otro modo" pero en una línea con menos palabras //pisteM vale list[i].ogg o 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 indica la longitud(número de elementos) del array, - porque comienza en cero opt.innerHTML=tracks[tracks.length-1].mp3.substring(0, tracks[tracks.length-1].mp3.lastIndexOf('.') )//--corta la cadena para mantener solo lo que está antes del último '.' del nombre del archivo opt.setAttribute('value', i )//-- el atributo value contiene el índice del array tracks de la pista }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" >':''; //-- otra vez la notación ternaria de IF ELSE que es muy práctica una vez que uno se acostumbra var isOgg = tracks[index].ogg !==null ? '<source src='+tracks[index].ogg+' type="audio/ogg" >':''; //-- otra vez la notación ternaria de IF ELSE que es muy práctica una vez que uno se acostumbra audio.innerHTML=isMp3+''+isOgg } audio.id='lecteur' audio.controls=true;//-- activa los controles, equivalente en HTML a <audio controls > playlist.id='playlist' document.body.appendChild(audio)//-- agrega el elemento audio en la página document.body.appendChild(playlist)//-- agrega el elemento select en la página loadAudio(['canción0.mp3', 'canción1.mp3' , 'canción3.mp3'],['canción0.ogg', 'canción1.ogg' , 'canción2.ogg'] ) playlist.addEventListener('change',function(e){ console.log('opción cambiada: '+e.target.innerHTML) choixPiste(e.target.value) })
Por supuesto, esto se puede organizar mejor en términos de funciones (para evitar repeticiones) y mejorar según sus necesidades. Aquí es una base rápida para dar una idea (y dejen de lado Dreamweaver: hacer HTML es texto, hacer CSS también, hacer JavaScript es pensar antes de escribir texto... así que solo necesitan el modo editor de Dream, que es simplemente escribir texto (y quiten todas las otras cosas que agrega Dreamweaver para hacerlas a mano y que permanezca legible por un humano... lo cual no es el caso de un 'código' generado automáticamente).
Lo mismo para los controles/la apariencia, se puede estilizar con CSS, agregar audio.play() para reproducir el archivo elegido directamente, etc...
Otros ejemplos:
https://www.w3schools.com/jsref/dom_obj_audio.asp
pd: no he probado con música real, pero no hay razón para que no funcione. Es muy simple: se utiliza una lista de direcciones de archivos para llenar un menú desplegable. Al cambiar en el menú, escribimos en el reproductor la pista en mp3 y su versión alternativa ogg, y después solo hay que presionar play.-
à probar entre las etiquetas de script o en un archivo externo ".js" cargado en el HTML.
Para el primer caso, añade el script arriba a continuación y cierra las etiquetas <script>, <body> y <html> en ese orden.
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title></title> </head> <body> <script>
-
-
ColaboradorHola DesReliques,
Perdona por el retraso, pero tengo muchos problemas en mi sitio de los que no me había dado cuenta, ya que no estaba revisando esta parte, secciones del sitio abarka.
He utilizado un script del Quizz vasco que estoy probando.
Tengo CSS y JS.
El script a continuación (que no domino mucho) pero estas líneas se siguen en la página (.js + .htm) y se refiere al quizz mencionado anteriormente y que funciona muy bien:<!-- Inicio del cuadro de la ventana para el reproductor de audio en el pop up --> <script language="JavaScript" type="text/JavaScript"> //<![CDATA[ <!-- function MM_reloadPage(init) { //recarga la ventana si Nav4 se redimensiona 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 para mostrar imágenes a través de un enlace 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 = ""; } // Fin --> //]]> </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;">encabezado <img title=" Cerrar " 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"> Su navegador no soporta la etiqueta de audio. </audio> </td> </tr> </table>
¡Muchas gracias por tus ejemplos que guardo con cariño!
-
ColaboradorHola a todos,
Bueno, acabo de rehacer, corregir el CSS para el ancho de las páginas (90% en lugar de 880px) debido a la imagen del banner y al ancho del menú.
Estoy intentando centrar los <form> pero no es sencillo.
Por cierto, a quien me dijo que no usara Dreamweaver, yo mismo corrijo los códigos generados (2 pantallas, una para crear la página y la segunda para la visualización del código, lo que me permite ver el código a medida que avanza, por lo que la corrección es posible desde el principio).
Gracias de nuevo.
--
La felicidad es lo único que se puede dar sin tenerla.-
Euh, otras preguntas entonces....
Para CSS hay varias maneras de hacer el posicionamiento.
Para un centrado, se pueden usar los márgenes y la dimensión: 2 márgenes a la derecha y a la izquierda y el espacio restante = centrado horizontalmente (ejemplo 10% a la izquierda 80% tamaño del elemento = centrado)
Pero bueno, es otro tema, ¿no hablaban de un reproductor de AUDIO?
Una pregunta a la vez.
¿Está resuelto, ha entendido el interés de un solo reproductor que cambia el archivo versus un archivo a cargar por canción a reproducir?
¿Probó mi código, sin usar Dreamweaver y entendiendo sobre todo para añadir la reproducción al hacer clic en la lista select?
"A quien me dijo que no usara Dreamweaver, yo corrijo los códigos generados yo mismo (2 pantallas, una para crear la página y la segunda para la visualización del código que me permite ver el código a medida que avanza por lo que la corrección es posible desde el principio)."
No entendí muy bien.... ¿está hablando de mi script?
Me parece que en lugar de tener que corregir un código con 'errores' es más rápido y mejor escribir un buen código directamente.
2 pantallas no tienen nada que ver, la idea es saber lo que hace y ser capaz de hacerlo.
Trabajar en WYSIWYG le impide hacer eso porque no incentiva la reflexión ni siquiera a separar la apariencia de los datos.
Tomemos las cosas en serio un momento. Usted hace una pregunta sobre un reproductor multimedia para audio. Le he mostrado un elemento de respuesta de manera didáctica... y usted me habla de centrar un elemento en CSS.
La única respuesta es aprender a escribir CSS (y no pedir a un programa que lo haga automáticamente, lo que no puede funcionar = por lo tanto, hay que tirar herramientas como Dreamweaver si es para trabajar en visual en la escritura de textos/scripts, es simplemente una herramienta muy mala con un enfoque que no es coherente con la realidad de los lenguajes/de una página web) pero no es la respuesta a la utilización de la API de audio con JavaScript. -
@DesReliquesPara mí, las tres preguntas tienen una respuesta similar:
¿cómo hacer un centrado?: aprendiendo CSS
¿cómo gestionar mi API de Audio?: aprendiendo JavaScript
¿cómo aprender a hacer un cuestionario?: JavaScript.
Mientras no comprendan que lo que hace Dreamweaver es lo contrario a lo que se debe hacer y no les permite aprender (y, por lo tanto, dejar de lado sus scripts pre-generados y el enfoque WYSIWYG que de todos modos no son buenos = mal sitio con un resultado pobre) para comenzar a arremangarse:
aprender a escribir por ustedes mismos en lugar de dejar que un software piense por ustedes, que lo hará muy mal y ni siquiera sabe lo que quieren, pueden imaginar o crear.
Para aprender, hay que comenzar por las bases: HTML, CSS, JavaScript en ese orden, CSS se basa en HTML y JavaScript permite manipular HTML y CSS.
Si para los primeros son lenguajes de descripción bastante simples (20 minutos de lectura cada uno para entender), JavaScript es programación.
Con un enfoque lógico (sí/no, verdadero/falso) y secuencial (+objeto+eventual) para resolver una pregunta y automatizar procesos (algoritmo).... en fin, no es algo que se pueda improvisar en lugar de un humano por un programa, sino que se reflexiona, construye y tiene una coherencia (que garantiza que funcione para el propósito deseado).
Dado que es largo de escribir, preferí darles un ejemplo para que lo prueben ustedes mismos, que les hará adquirir algunas de estas bases o les obligará a buscar para comprenderlas...
Pero, bueno, ¿han intentado y reproducido mi respuesta como lo propuse desde el principio?
Que la respuesta les convenga o no, es la mejor que podrán obtener: para saber, hay que empezar por aprender.
Descomponiendo mi código (y por ende entendiéndolo) tendrán todas las respuestas a su pregunta sobre cómo utilizar audio... claro, con las bases que no estamos aquí para proporcionar: "aprender JavaScript para principiantes", por ejemplo, en una búsqueda en Google.
Para el posicionamiento, eso se hace en CSS, así que aprendan CSS y practiquen los métodos de posicionamiento (que son diversos).
Para hacer un cuestionario, probablemente será necesario recurrir a la programación, aunque sea para verificar si una respuesta es verdadera o falsa. Por lo tanto, probablemente una parte de JavaScript que manipulará los cuestionarios de la página (formulario e inputs) y tratará las preguntas; así que HTML, CSS y JavaScript en conjunto.
En lugar de anotar esto:<!-- Script de Rad Zone para mostrar imágenes a través de un enlace
Sería mejor entender qué hace y por qué el script lo hace así. Para poder repetirlo o reutilizarlo en otro contexto.
Sin saber y entender, no podrán lograrlo. DW les impide hacerlo y ya no es una herramienta válida desde hace unos quince años, nunca lo ha sido para hacer sitios de tipo RIA o cualquier sitio moderno que tenga ambición más allá de una semana.
¿En qué punto están? ¿Cuánto tiempo han pasado aprendiendo cada uno de los lenguajes?
Existen cursos en línea y tutoriales bastante numerosos sobre estos temas que les ayudarán a comprender mi ejemplo donde se encuentran bloqueados. Pero sí, tendrán que arremangarse en lugar de quedarse con DW a producir sitios de mala calidad a partir de un diseño visual.
-
-
ColaboradorHola DesReliques,
Es cierto que mezclo muchas cosas.
"Pero bueno, es otro tema, ¿no hablabas de un reproductor de AUDIO?" Sí, logré hacerlo funcionar, pero el reproductor aparece al final de la lista, de ahí mi pregunta inicial.
No entendí muy bien... ¿hablas de mi script? : No, aún no lo he probado. Mi sitio es muy antiguo y no ha sido tocado en unos años, pero funcionaba muy bien excepto en las secciones donde hay animaciones en .swf (que acabo de eliminar, no sabía que estaban obsoletas). Estuve muy enfermo.
Sin embargo, logré convertir los videos. Hacía streaming en una época en la que eso no existía con archivos alojados en un proveedor de servicios de Internet, excepto los míos, incluyendo las músicas y los cantos (con Real Player).
Las CSS las escribo yo, no Dreamweaver, que uso únicamente para la coloración de la sintaxis y la indentación. Eso permite ver posibles errores.
Lo mismo con el script de Rad Zone que he adaptado por completo, pero no soy capaz de escribir JavaScript, solo de modificar ciertas cosas.
¡Muchas gracias de todos modos!
Sobre tu script, por supuesto que lo voy a probar. Por el momento estoy tratando de reparar y reorganizar mi sitio.
--
La felicidad es lo único que se puede dar sin tenerla. -
ColaboradorDesReliques,
No esperaba una novela.
Cierro la discusión.
¡Gracias de todos modos!
--
La felicidad es la única cosa que se puede dar sin tenerla.