Comunidad de diseño web y desarrollo en internet

Añadir audio a un scrip que no lo tiene

Citar            
MensajeEscrito el 16 Abr 2017 09:28 pm
Saludos a tod@s.
Me gustaría ponerle audio a este script de bingo familiar, y la verdad, no se por donde empezar, ¿ Alguien puede orientarme por favor?

Código Javascript :

var Bingo = {
    min: 1,
    max: 90,
    numerosSorteados: new Array(),
    windowDocument: null,

    init: function(parent)
        this.windowDocument = parent;
        this.bind();
    },

    bind: function(){
        $("#boton-borrar-todo").click(function(){
            Bingo.botonBorrarTodoAction();
        });
        $("#boton-jugar").click(function(){
            Bingo.botonJugarAction();
        });
        $(".texto").click(function(){
            Bingo.seleccionarTipoJuego(this);
        });
        $("#boton-sortear").click(function(){
            Bingo.jugar();
        });
        $(".wp-pagenavi-span").click(function(){
            Bingo.seleccionarBolaAction($('#' + this.id));
        });
    },

    seleccionarTipoJuego: function(boton){
        if(!$(boton).hasClass( "texto-seleccionado" )){
            $(boton).addClass('texto-seleccionado', 1000, 'easeOutQuart');
            var aux = $(boton).attr('id');
            switch(aux){
                case 'boton-terna':
                    $('#boton-linea').removeClass('texto-seleccionado', 500, 'easeOutQuart');
                    $('#boton-bingo').removeClass('texto-seleccionado', 500, 'easeOutQuart');
                    break;
                case 'boton-linea':
                    $('#boton-terna').removeClass('texto-seleccionado', 500, 'easeOutQuart');
                    $('#boton-bingo').removeClass('texto-seleccionado', 500, 'easeOutQuart');
                    break;
                case 'boton-bingo':
                    $('#boton-terna').removeClass('texto-seleccionado', 500, 'easeOutQuart');
                    $('#boton-linea').removeClass('texto-seleccionado', 500, 'easeOutQuart');
                    break;
            }
        } else {
            $(boton).removeClass('texto-seleccionado', 1000, 'easeOutQuart');
        }
    },

    botonBorrarTodoAction: function(){
        window.top.location.reload();
    },

    botonJugarAction: function(){
        bootbox.dialog({
            message: "<p>Quiere que el sistema genere automaticamente los números sorteados?<br/> (Esta opción es muy util cuando usted no dispone de bolillero para realizar el sorteo)</p>",
            title: "Seleccione una opción para iniciar el Juego",
            buttons: {
                danger: {
                    label: "No",
                    className: "btn-danger",
                    callback: function() {

                    }
                },
                main: {
                    label: "Si, generar",
                    className: "btn-primary",
                    callback: function() {
                        bootbox.hideAll();
                        Bingo.numerosSorteados = new Array();
                        Bingo.jugar();
                    }
                }
            }
        });
    },

    anularBola: function(numero){
        $('#bola-actual').html('-');
        $('#bola-salio-'+numero).remove();
        $('#bola-'+numero).removeClass('wp-pagenavi-span-bola-salio');
        $('#bola-'+numero).addClass('wp-pagenavi-span');
    },

    seleccionarBolaAction: function(bola){
        if(bola.hasClass( "wp-pagenavi-span-bola-salio" )){
            console.log("La bola seleccionada YA SALIO!");
        }
        else{
            var n = bola.html();
            console.log('Numero marcado: ' + n);
            this.generarBolaGigante(n);
            this.marcarBolaYaSalio(bola);
            this.numerosSorteados.push(n);
            console.log(this.numerosSorteados);
        }
    },

    marcarBolaYaSalio: function(bola){
        bola.addClass('wp-pagenavi-span-bola-salio', 3000, 'easeOutExpo',
            function(){
                bola.removeClass('wp-pagenavi-span');
                var numero = bola.html();
                $('#bola-actual-flotante').remove();
                $('#ultimas-6').prepend('<span class="wp-pagenavi-span-bola-salio" onclick="Bingo.anularBola(\''+numero+'\');" id="bola-salio-'+numero+'">'+numero+'</span>');
            }
        );
    },

    generarBolaGigante: function(numero){
        $('#bola-actual').html(numero);
        $( window.document.body ).prepend('<span class="bola-actual-flotante" id="bola-actual-flotante">'+numero+'</span>');
        $( ".bola-actual-flotante" ).position({
            of: $('#left-content')
        });
    },

    generarNumeroAleatorio: function() {
        //http://stackoverflow.com/questions/1527803/generating-random-numbers-in-javascript-in-a-specific-range
        var n =  Math.floor(Math.random() * (Bingo.max - Bingo.min + 1)) + Bingo.min;
        if(n < 10){
            n = "0" + n.toString();
        }
        console.log('Numero generado: ' + n.toString());
        return n.toString();
    },

    jugar: function(){
        console.log(_.size(Bingo.numerosSorteados));
        if(_.size(Bingo.numerosSorteados) >= (Bingo.max)){
            Bingo.showMensajeJuegoFinalizado();
            return;
        }
        var n =        Bingo.generarNumeroAleatorio();
        if(_.contains(Bingo.numerosSorteados, n)){
            // controlar que aca si ya tiene todos los numeros no genere infinitamente
            console.log('Numero sorteado ya salio: ' + n);
            Bingo.jugar();
        }
        else{
            Bingo.seleccionarBolaAction($('#bola-' + n));
        }
    },

    showMensajeJuegoFinalizado: function(){
        bootbox.dialog({
            message: "<p>Todos los números ya fueron sorteados.<br/>Desea LIMPIAR la pizarra?</p>",
            title: "El Juego a finalizado",
            buttons: {
                danger: {
                    label: "No",
                    className: "btn-danger",
                    callback: function() {

                    }
                },
                main: {
                    label: "Si, limpiar",
                    className: "btn-primary",
                    callback: function() {
                        bootbox.hideAll();
                        Bingo.botonBorrarTodoAction();
                    }
                }
            }
        });
    }
};




$( window.document ).ready(function() {
    Bingo.init(this);
});


Gracias por leerme.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 18 Abr 2017 03:52 pm
¿Sabes reproducir un sonido usando JavaScript?

Jorge

Por solisarg

BOFH

13342 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Abr 2017 07:31 pm
a ver debes crear un tagname de tipo audio o los suelo bajar de http://www.flashkit.com/soundfx/ luego por ejemplo.

desde la framework de javascript que cree yo hago esto:

$('audio','audio','b','src:beep.mp3');$('d1_').onclick=function(){$('audio').play();}

desde nativo hay que hacer esto:

Código Javascript :

var audio=document.createElement('audio');
audio.src='beep.mp3';
elementohtmlquequiereshacersonidoconunclick.onclick=function(){audio.play();}


tambien tienes que tener en cuenta las extensiones mp3, wav o ogg segun browsers para eso crea tu variable en funcion de navigator.userAgent -->

var bro=navigator.userAgent.toLowerCase();
if(bro.indexOf('chrome')>0){nav='-webkit';}else if(bro.indexOf('firefox')>0){nav='-moz';}

i por ahi le puedes meter que tipo de extension es la mas adecuada , de todas formas la mayoria funcionan con el contenedor mp3.

tambien tienes que tener en cuenta que si fichero es grande o esta ubicado en un servidor lento o hay muchos debes esperar a que carge por completo para que se haga efectivo el sonido al no ser un elemento ajax el evento onreadystatechange no funka del todo bien por lo que debes jugar con el evento onload que funciona con casi todos los elementos html5.
Hay quien tambien crea un elemento source para añadir el src con el mp3 i luego lo childea con el elemento audio. pero ami ya me funciona bien de esa manera.

Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2017 08:54 pm
He probado varias formas y no me funcionan, creo que mi problema es que no se que es lo que tengo que poner en la urc del audio para que reconozca el numero que sale aleatoriamente.

esto es lo que estoy probando:

Código :

<script type="text/javascript">
$(document).ready(function () {
vas sonido = document.getElementById("sonido");
});
</script>

<audio id="sonido"><source src="numero.mp3"></source></audio>

<div class="texto-sortear" id="boton-sortear" onclick="sonido.play()">Bola</div>


Si pongo el numero directamente asi:

Código :

<audio id="sonido"><source src="22.mp3"></source></audio>

si lo reproduce, pero no se que es lo que tengo que poner para que reconozca el numero aleatorio.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 19 Abr 2017 08:58 pm

aukun escribió:

a ver debes crear un tagname de tipo audio o los suelo bajar de http://www.flashkit.com/soundfx/ luego por ejemplo.

desde la framework de javascript que cree yo hago esto:

$('audio','audio','b','src:beep.mp3');$('d1_').onclick=function(){$('audio').play();}

desde nativo hay que hacer esto:

Código Javascript :

var audio=document.createElement('audio');
audio.src='beep.mp3';
elementohtmlquequiereshacersonidoconunclick.onclick=function(){audio.play();}


tambien tienes que tener en cuenta las extensiones mp3, wav o ogg segun browsers para eso crea tu variable en funcion de navigator.userAgent -->

var bro=navigator.userAgent.toLowerCase();
if(bro.indexOf('chrome')>0){nav='-webkit';}else if(bro.indexOf('firefox')>0){nav='-moz';}

i por ahi le puedes meter que tipo de extension es la mas adecuada , de todas formas la mayoria funcionan con el contenedor mp3.

tambien tienes que tener en cuenta que si fichero es grande o esta ubicado en un servidor lento o hay muchos debes esperar a que carge por completo para que se haga efectivo el sonido al no ser un elemento ajax el evento onreadystatechange no funka del todo bien por lo que debes jugar con el evento onload que funciona con casi todos los elementos html5.
Hay quien tambien crea un elemento source para añadir el src con el mp3 i luego lo childea con el elemento audio. pero ami ya me funciona bien de esa manera.


Gracias aukun
Aunque creo que no sabría hacer lo que dices, lo veo complicado y no lo entiendo bien.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 19 Abr 2017 09:20 pm
Perdon
Quise decir:
no se que es lo que tengo que poner en la src del audio para que reconozca el numero que sale aleatoriamente.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 20 Abr 2017 02:17 am
a ver es que tampoco se que es lo que quieres exactamente, quieres un sonido al apretar un boton, quieres un sonido al cargar la pagina, quieres sonidos aleatorios para diferentes eventos...

a ver lo que yo te deje es:

Código Javascript :


var audio=document.createElement('audio');
audio.src='beep.mp3';
document.getElementByTagName('BODY').appendChild(audio);

boton.onclick=function(){audio.play();}//si haces click en el elemento boton sonara beep.mp3

////////////////////////////////////////
//si quieres que sean sonidos aleatorios facil:
var A=String('beep1.mp3,beep2.mp3,beep3.mp3,beep10.mp3,beep20.mp3,beep30.mp3,beep100.mp3,beep200.mp3,beep300.mp3').split(',');

for(var i=0;i<A.length;i++){

window['audio'+i]=document.createElement('audio');

window['audio'+i].src=A[i];

document.getElementByTagName('BODY').appendChild(window['audio'+i]);
}

boton.onclick=function(){
window['audio'+Math.floor(Math.random()*A.length)].play();}//si haces click en el elemento boton sonara beep#.mp3 siendo #un numero aleatorio que te da MAth cada vez que haces click en el elemento boton





Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Abr 2017 07:08 am
Gracias aukun

Veras:
El código iniciar es un generador de números aleatorio, tipo bingo familiar
Lo que quiero es que cuando ese código genere un numero también reproduzca el audio correspondiente a ese numero generado

Por ejemplo:
si sale el 12 que se reproduzca el archivo 12.mp3
si sale el 34 que reproduzca el archivo 34.mp3, y así sucesivamente.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 21 Abr 2017 07:24 am
He probado lo que me dices

var audio=document.createElement('audio');
audio.src="beep.mp3";
elementohtmlquequiereshacersonidoconunclick.onclick=function(){audio.play();}

var bro=navigator.userAgent.toLowerCase();
if(bro.indexOf('chrome')>0){nav='-webkit';}else if(bro.indexOf('firefox')>0){nav='-moz';}

Funciona si le pones el nombre del archivo, pero a la hora de querer identificar el numero generado aleatoriamente no lo consigo

Creo que debe ser algo asi:
audio.src="numero +'.mp3'";

pero no funciona de ninguna de las maneras que he probado.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 21 Abr 2017 07:59 am
Este es el proyecto:



Solo le falta el audio y la reproducción automática

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 21 Abr 2017 02:50 pm
joer tio me haras hacer un html demo para ver si lo pillas a ver te dejo esto para que lo pruebes ya que a mi lo que te puse si que me funciona:

Código HTML :

<html id='H'><head id="h"><link rel="shortcut icon" href="crowdslogo32.ico"><meta charset="utf-8"></head><body id="b" spellcheck="false"></body><script>


function aaa(){console.log(arguments[0]);console.log(arguments[1]);}
String['prototype'].rep=function(){var a=arguments;var z=this.replace(a[0],a[1]);while(z.indexOf(a[0])>-1){z=z.replace(a[0],a[1]);};return z;};
var $ = {
   _:function(){
      var a=arguments,b,B,c,C='createElement',d,D=document,e,f='',g,G='getElementById',i,I='indexOf',j,J ,l=a.length,L='length',o=(l==4)?D[C](a[1]):(typeof a[0]=='object')?a[0]:(a[0]=='')?'':D[G](a[0]),s='substr',S='style',t='split',T='sessionStorage',W=window;
      
      if(l==1){return o;
      }else if(l==2){
         b=a[1];c=b[0];d=b[s](1);
         if(c==':'){return o[d];
         }else if(c==';'){return o[S][d];
         }else if(c=='@'){e=d[t](c);W[e[0]].apply(this,e[1][t]('|'));
         }else{
            var A=Array();
            if(b[0]=='!'){J=b[s](1);J=J[s](0,J[I]('!'));
               b=b[s](J.length+2);
               console.log(b);
               
               }
            if(b[I](',')<0){A[0]=b;}else{A=b[t](',');};
            for(j in A){
               e=A[j];
               f=e.match(/[:;@]/)[0];
               g=Array(e[s](0,e[I](f)),e.substr((1+e[I](f))));
               if(f==':'){o[g[0]]=g[1];}else if(f==';'){o[S][g[0]]=g[1];}else if(f=='@'){o[g[0]]=W[g[1]];}
               
            }
            
         }
      }else if(l==3){
         
      }else if(l==4){
         var p=$._(a[2]);
         if(a[0]!=''){o.id=a[0];};$._(o,a[3]);
         p.appendChild(o);
      }   
   
   
   },
   send:function(){
      $._('','form','b','visibility;hidden,action:'+a[0]+',method:post');
      
      },
   
   b64:"|@·#$%&()?'<>*-_;:.,!\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",   

   shuffle:function(a){
      var s=a,S='',j;
      while(s.length>0){j=Math.floor((Math.random()*s.length));S+=s[j];s=s.replace(s[j],'');};
      return S;},
            
   rand:function(){
      var l=arguments.length,A=Array(),s='',N,S;if(l==0){S=this.b64;N=20;}else if(l==2){var a=arguments;S=a[0],N=a[1];};
      A=S.split('');for(var i=0;i<N;i++){s+=A[Math.floor(Math.random()*A.length)];};return s;},
         
   b64e:function(s){
      return btoa(encodeURIComponent(s).replace(/%([0-9A-F]{2})/g,function(match,p){return String.fromCharCode('0x'+p);}));},   
         
   b64d:function(s){
      return decodeURIComponent(atob(s).split('').map(function(c){return '%'+('00'+c.charCodeAt(0).toString(16)).slice(-2);}).join(''));},
         
   encrypt:function(...n){var s=n[0],b=(n.length==2)?n[1]:this.b64,B=b.split(''),K=B.length;return s.split('').map(function(k){var N=parseInt(String(Math.floor((Math.random()*6)+1))+String((String(k).charCodeAt(0)-23))+String(Math.floor((Math.random()*9)))),S='';while(N>K){S=B[N%K]+S;N=parseInt(N/K);};return B[N]+S;}).join('');},
      
   decrypt:function(...n){var n=n,g=this.b64;return n[0].match(/.{1,2}/g).map(function(k){var a=(n.length==2)?n[1]:g,A=a.split('');return String.fromCharCode(parseInt(String((A.indexOf(k[0])*A.length)+A.indexOf(k[1])).substr(1,2))+23);}).join('');}   
   
      
}

$._('z','div','b','position;absolute,top;10px,left;10px,width;500px,height;50px,border;5px solid purple,backgroundColor;white,innerHTML:Sorteobazoka <i>el puto amo de los sorteos online</i>,textAlign;center');

$._('boton','div','b','position;absolute,top;100px,left;10px,width;100px,height;20px,backgroundColor;purple,color;white,borderRadius;20px,textContent:suerte,textAlign;center,cursor;pointer');

$._('numero','div','b','position;absolute,top;100px,left;150px,width;50px,height;30px,border;2px solid purple,color;red,fontSize;28px,textAlign;center,cursor;pointer,textContent:');
var A=Array('http://www.flashkit.com/imagesvr_ce/flashkit/soundfx/Electronic/Charge-Nathan-8589/Charge-Nathan-8589_hifi.mp3','http://www.flashkit.com/imagesvr_ce/flashkit/soundfx/Electronic/Laser_Pe-Darkz3ph-8623/Laser_Pe-Darkz3ph-8623_hifi.mp3','http://www.flashkit.com/imagesvr_ce/flashkit/soundfx/Electronic/Beeps/LaserGun-Mort432-8746/LaserGun-Mort432-8746_hifi.mp3');
for(var i=0;i<A.length;i++){
//var i=0;
window['audio'+i]=document.createElement('audio');
window['audio'+i].src=A[i];
$._('b').appendChild(window['audio'+i]);
}
$._('boton').onclick=function(){
   var aleatori=Math.floor(Math.random()*3);
   $._('numero').textContent=aleatori;
   window['audio'+aleatori].play();
   
}   
   
</script></html>


A es un array de urls de mp3 que se encuentran online prueba este html que te hice a ver si te funciona, la clave de todo se encuentra en window['audio'+aleatori], y lo que te intento decir en las otras contestaciones es que primero los debes cargar todos los audio y para cargarlos debes childearlos -> appendChild en algun elemento del html en mi caso los childeo en b que es el id de body, en caso de ser muchos los sonidos debes calcular mas o menos cuanto tarda en loadear los mp3, para poner algun elemento de carga... en algunas webs ponen una cuenta atras . En mi caso para que asegures la carga, por ejemplo en mi web me tardaba en cargar unos ttf eso lo solucionaba creando dos scripts por ejemplo.

<script id=s1>//aqui pones las cargas</script>
<script id=s2>//aqui pones codigo eventual del usuario</script>
tambien puedes jugar con el evento window.onload y elementoaudio.onload y tambien con setTimeOut debes tener en cuenta tambien que las cargas se producen con tempos de diferente manera segun el tipo de cpu-ram-browser-user<->cpu-ram-server por lo que un mobil ira a una velocidad mas lenta que un pc

Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Abr 2017 09:13 pm
Muchas Gracias por tu esfuerzo aukun pero no se a que te refieres con esto:

la clave de todo se encuentra en window['audio'+aleatori], y lo que te intento decir en las otras contestaciones es que primero los debes cargar todos los audio y para cargarlos debes childearlos -> appendChild en algun elemento del html

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 22 Abr 2017 08:00 am
pues que esto que te he puesto es una demo y que no malgastes tu tiempo en las funciones $. y mas en el concepto window['audio'+random] , tambien en el concepto que para que un elemento audio sea llamado desde id es decir document.getelementbyid(idelementoaudi) si audio no es child de algun parent es decir parent.appendchild(elementoaudio) entonce no te lo va a encontrar ese elemento audio por id cuando hagas document.getelementbyid(idelementoaudio).play()

Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Abr 2017 01:17 pm
Jolin
no se si lo haces a posta pero cada ves es mas difícil entenderte.
No hay un lenguaje mas sencillo que use términos menos profesionales.
así no hay quien se aclare.
¿No es mas sencillo poner el código HTML que necesita el javascript para reconocerlo?

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 22 Abr 2017 02:02 pm
A ver, me parece que aukun intenta ayudarte, pero saber mucho no siempre significa saber transmitirlo, y es algo que todos aprendemos en el foro mismo. A veces uno intenta resolverle todo a quien pregunta, pero lleva un tiempo entender que enseñar no es resolverle los problemas al otro sino ir pensando juntos.

Ahora volviendo al punto donde estabas, has logrado reproducir el sonido poniendo un nombre de archivo hardcodeado, pero cuanto le quieres poner un nombre aleatorio no funciona, creo que la expresión era:

audio.src="numero +'.mp3'";

Ahi hay un error de sintaxis, si quieres que tome la variable sería

audio.src=numero +'.mp3';

¿Pero está número en scope?

Puedes averiguarlo poniendo un breakpoint o un simple log

console.log('Mi audio es '+numero+'.mp3');

Si te sale null o undefined en la console, el problema es de scope, sino debería funcionar

Jorge

Por solisarg

BOFH

13342 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2017 06:37 pm
Gracias Jorge
Lo de aukun, el no lo hace mal, solo que utiliza demasiado expresiones técnicas, que no es que este mal, solo que para un menos de novato que soy yo con el JavaScript, resulta mas complicado todavía. Aun así le agradezco su esfuerzo.

en cuanto a lo que me pones lo voy a probar ahora mismo, y cruzo los dedos para que funcione. Muchas Gracias Jorge


Jose

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 22 Abr 2017 08:40 pm
creo que es esto: console.log('Numero generado: ' + n.toString()); lo que hay en el código iniciar del tema, que se refiere al scope, pero no me funciona con la 'n' así que probé con 'numero' y nada de nada

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 22 Abr 2017 11:01 pm
He echo cambios basándome en lo que me has puesto Jorge
pero sigo sin saber que es lo que va ahí:

script:
function audioBola(){
document.all.sound.src =numero +".mp3"}

html:
<bgsound id="sound">
<div class="texto-sortear" id="boton-sortear" onclick="audioBola()">Bola</div>

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 23 Abr 2017 12:28 pm
Si donde dice numero quieres poner el numero de bola que ha salido, entonces tienes que ir al objeto Bingo y buscar donde lo genera, luego encuentras esta línea

var n = Bingo.generarNumeroAleatorio();

Esa n necesitamos que es el número ... el problema es que esta metida dentro de un método de Bingo. ¿Podríamos meter la creación del sonido allí dentro mismo verdad?

Inténtalo

Jorge

Por solisarg

BOFH

13342 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Abr 2017 04:13 pm
a ver y si para ver el tipo de error que te da cuando le pones audio no seria mejor que abrieras consola del browser y miraras a ver que tipo de error te da y partimos de ahi?

Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Abr 2017 05:43 pm
Lo he puesto así:

var n = Bingo.generarNumeroAleatorio();
if(_.contains(Bingo.numerosSorteados, n)){
// controlar que aca si ya tiene todos los numeros no genere infinitamente
console.log('Numero sorteado ya salio: ' + n);
Bingo.jugar();
function audioBola(){
document.all.sound.src =n +'.mp3'}

}
else{
Bingo.seleccionarBolaAction($('#bola-' + n));
}
},

Pero sigue sin funcionar.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 23 Abr 2017 05:44 pm
es HTML no me da errores

simplemente no sale el audio

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 23 Abr 2017 07:58 pm
Ok, no puedes declarar una funcion dentro de otra y esperar que se ejecute. Pero dado que la funcion tiene un solo comando, usa el comando, no declares la funcion

Bingo.jugar();
document.all.sound.src =n +'.mp3'

La consola es la que te indica errores y muestra las salidas de lo que ves como console.log
Si usas Chrome, la puedes abrir con Ctrl+Shift+I

Jorge

Por solisarg

BOFH

13342 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Abr 2017 10:33 pm
He hecho lo que me has dicho y sigo sin audio.

var n = Bingo.generarNumeroAleatorio();
if(_.contains(Bingo.numerosSorteados, n)){
// controlar que aca si ya tiene todos los numeros no genere infinitamente
console.log('Numero sorteado ya salio: ' + n);
Bingo.jugar();
document.all.sound.src =n +'.mp3';
console.log('Mi audio es '+n+'.mp3');

}
else{
Bingo.seleccionarBolaAction($('#bola-' + n));
}
},


En cuanto a lo de Chrome me da esto en la consola.

Failed to load resource: the server responded with a status of 404 (Not Found)
(index):127

Uncaught ReferenceError: audioBola is not defined

at HTMLDivElement.onclick ((index):127)

bingo.js:134

0 bingo.js:129 Numero generado: 86

bingo.js:96 Numero marcado: 86

bingo.js:100 Array(1) (Esto va plegado y lleva mas)

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 24 Abr 2017 09:12 am
mira la linea 127, parece que hay algun tipo de error en la carga de algun archivo ya sea mp3 o js, mejor instalate firefox que es mejor para ver errores luego ves a la consola y mira por ahi pon todo en el boton de red en boton css pon errores, en js errores i advertencias en seguridad errores i advertencias en registro absolutamente todo, actualiza la pagina que te da error marca asolutamente todo lo que te aparezca en consola firefox (control+C) -> ves a https://pastebin.com (control+v ) -> en campo new paste pon los campos que faltan segun lenguaje caducidad ... correctamente i apreta boton create new paste , abre un boton que te pondra raw apreta copia la url que te da i la linkeas aki en el foro , porque con raw me aparecera directamente desde entorno CLI que voy mas rapido por ahi.
O tambien puedes poner online en un host tu web i linkeas la direccion i desde consola de firefox te soluciono el problema.
Creo que tienes un error de typeado algo que no pones bien en la url de algun src ya sea un mp3 o js ademas que audiobola no es reconocida la funcion por lo que me imagino que o bien no la tienes bien definida o no carga porque la url es incorrecta o que es lo mismo el fichero no es accesible por esa url, ya sea problema de permisos como ya me sucedio alguna vez o ya sea por error.

Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Abr 2017 01:43 pm
Ha ocurrido algo increíble

estaba haciendo pruebas y de repente después de varios numero, va y me dice el primero, entonces me di cuenta que el audio no estaba en el lugar correspondiente, de modo que lo coloque aquí:

Código Javascript :

    generarNumeroAleatorio: function() {
        //http://stackoverflow.com/questions/1527803/generating-random-numbers-in-javascript-in-a-specific-range
        var n =  Math.floor(Math.random() * (Bingo.max - Bingo.min + 1)) + Bingo.min;
        if(n < 10){
            n = "0" + n.toString();
        }
        console.log('Numero generado: ' + n.toString());
            document.all.sound.src =n +'.mp3';
            console.log('Mi audio es '+n+'.mp3');
        return n.toString();
    },


Y ahora funciona perfectamente.

Muchas Gracias Por Vuestra Ayuda, Sin Vosotros no lo abría conseguido. Gracias

Aunque eso ya es mucho, me gustaría poder poner un botón para silenciarlo.
Otra cosa que no funciona es la tirada de números automática, resulta que al intentar usarla solo sale un numero y no continua.

Esta es la parte del código:

Código Javascript :

    botonJugarAction: function(){
        bootbox.dialog({
            message: "<p>Quiere que el sistema genere automaticamente los números sorteados?<br/> (Esta opción es muy util cuando usted no dispone de bolillero para realizar el sorteo)</p>",
            title: "Seleccione una opción para iniciar el Juego",
            buttons: {
                danger: {
                    label: "No",
                    className: "btn-danger",
                    callback: function() {

                    }
                },
                main: {
                    label: "Si, generar",
                    className: "btn-primary",
                    callback: function() {
                        bootbox.hideAll();
                        Bingo.numerosSorteados = new Array();
                        Bingo.jugar();
                    }
                }
            }
        });
    },


Esta en el código inicial del tema.

Por jearj

41 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 24 Abr 2017 02:20 pm
jajaja ya te vale tanto lio por un error tan tonto jajaja

Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Abr 2017 02:38 pm
quitar volumen es audio.muted=true; pero iras mas deprisa para estas cosas basicas preguntando a san google.

Por aukun

Claber

197 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Abr 2017 03:47 pm
Tenes que seguir el hilo de tu programa. Cuando le das a Si, generar, va a jugar, que toma un numero al azar y lo muestra en seleccionarBolaAction y eso es todo. ¿Que es lo que quieres que pase? Si quieres volver a generar un numero y que lo muestre cada cierto tiempo, investiga sobre un comando llamado setInterval pero cuidado, es un arma de doble filo: si no lo paras cuando terminas los números sigue infinitamente.

Jorge

Por solisarg

BOFH

13342 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Abr 2017 06:19 pm
Gracias seguiré vuestros consejos.

Seguro que nos encontramos otra vez, solo estoy a un clic de vosotros.

Por jearj

41 de clabLevel



 

mozilla

   Página 1 de 2

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.