Ver Mensaje Individual
  #14 (permalink)  
Antiguo 05/06/2017, 02:54
fab2160225
 
Fecha de Ingreso: abril-2016
Mensajes: 90
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: Problema con reproductor.addEventListener('ended'

Buenas, aunque ya voy a cerrar el tema porque ya me funciona, una última pregunta respecto a listar los archivos.
He montado este código:
Código PHP:
<?php
$directorio 
"/wamp/www/audio";

//
//
$gestor_dir opendir($directorio);
while (
false !== ($nombre_fichero readdir($gestor_dir))) {
    
$ficheros[] = $nombre_fichero;
}
 
 
 if (
$gestor opendir('.')) {
    while (
false !== ($entrada readdir($gestor))) {
        if (
$entrada != "." && $entrada != ".."

        {
          
$result[]= '{ruta:"'."$entrada".'"}';
          
        }
    }
    
closedir($gestor);    
}

$string[] = implode(","$result).""//concateno el punto al final 

$resultado=$string;

?> 
<script type="text/javascript">
    // obtenemos el array de valores mediante la conversion a json del

    // array de php

    var arrayJS=<?php echo json_encode($string);?>;
 
    // Mostramos los valores del array

    for(var i=0;i<arrayJS.length;i++)
    {
        document.write("<br>"+arrayJS[i]);
    }
</script>
que me genera este resultado:
Código PHP:
{ruta:"dos.mp3"},{ruta:"Musicprueba1.mp3"},{ruta:"tres.mp3"},{ruta:"uno.mp3"
el cual puesto en tu código funciona sin problemas, pero si añado el código a tu al tuyo no funciona (seguro que no lo hago bien) si me hechas una mano te lo agradezco.

este es el resultado todo junto:
Código PHP:

<html>
<?php
$directorio 
"/wamp/www/audio";

$gestor_dir opendir($directorio);
while (
false !== ($nombre_fichero readdir($gestor_dir))) {
    
$ficheros[] = $nombre_fichero;
}
  
 if (
$gestor opendir('.')) {
    while (
false !== ($entrada readdir($gestor))) {
        if (
$entrada != "." && $entrada != ".."

        {
          
$result[]= '{ruta:"'."$entrada".'"}';          
        }
    }
    
closedir($gestor);    
}

$string[] = implode(","$result).""//concateno el punto al final 
$resultado=$string;
?> 
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>FdW - Reproductor de música</title>
<style>
img, label, audio{
    display: block;
    margin: 0 auto;
    text-align: center;
}

img{
    width: 200%;
}
</style>
<script type="text/javascript">
'use strict';
/**
 * Reproductor de música
 *
 * @author Alexis88
 */

var Reproductor = {
    init: function(){
        //text-align: center;
        //Arreglo de canciones con sus respectivos atributos
        Reproductor.canciones = [

        
                var arrayJS=<?php echo json_encode($string);?>;
 
    // Mostramos los valores del array

    for(var i=0;i<arrayJS.length;i++)
    {
        document.write("<br>"+arrayJS[i]);
    }
/*            {
                artista: "Circa Waves",
                cancion: "Uno",
                ruta: "uno.mp3"
            },
            {
                artista: "Circa Waves",
                cancion: "Fire That Burns",
                ruta: "http://umgukvirgin.edgesuite.net/D2C/circawaves/circawaves-firethatburns.mp3",
                portada: "https://s-media-cache-ak0.pinimg.com/originals/51/95/70/5195701e847bc0a38f25f5721bce92f1.jpg"
            },
            {
                artista: "Circa Waves",
                cancion: "Stuck",
                ruta: "http://umgstore.edgesuite.net/D2C/circawaves/Stuck.mp3",
                portada: "http://ksassets.timeincuk.net/wp/uploads/sites/55/2017/03/2017_CircaWaves_Press_080317.jpg"
            }*/
        ];
        
        //Establecemos los elementos de portada, título, reproductor y contador
        Reproductor.portrait = document.querySelector("#portrait");
        Reproductor.title = document.querySelector("#title");
        Reproductor.player = document.querySelector("#player");
        Reproductor.cuenta = 0;
        
        //Se reproduce la primera canción
        Reproductor.tocar();
    },
    
    tocar: function(){
        //Se establece la portada, artista y título y el archivo de audio
        Reproductor.portrait.src = Reproductor.canciones[Reproductor.cuenta].portada;
        Reproductor.title.innerHTML = Reproductor.canciones[Reproductor.cuenta].artista + " - " + Reproductor.canciones[Reproductor.cuenta].cancion;
        Reproductor.player.src = Reproductor.canciones[Reproductor.cuenta].ruta;
      
        //Se actualiza el contador
        Reproductor.cuenta = Reproductor.cuenta == Reproductor.canciones.length - 1 ? 0 : ++Reproductor.cuenta;
        
        //Se reproduce la canción
        Reproductor.player.play();
      
        //Cuando acabe una canción, se reproduce la que sigue
        Reproductor.player.addEventListener("ended", Reproductor.tocar);
    }
};

//Al cargar la página
document.addEventListener("DOMContentLoaded", Reproductor.init);
</script>
</head>

<body>
    <img id="portrait" />
    <label id="title"></label>
    <audio id="player" controls="controls" type="audio/mpeg"></audio>
</body>
</html>
gracias otra vez