2012-02-23 20 views
6

Tengo el siguiente:Cómo reproducir sonidos en JavaScript

<audio id="clickdown-wav" src="ClickDown.wav" preload="auto"></audio> 

y luego en mi JavaScript, que tengo:

var ClickDown = $('#clickdown-wav')[0]; 

$(document).delegate('a','click',function() { 
    ClickDown.play(); 
}); 

El problema es que no es demasiado rápido (en un iPad) mientras presiono las etiquetas de anclaje. Hay un retraso notable entre el momento en que presiono la etiqueta de anclaje y el archivo wav.

P: ¿Existe alguna solución de código fuente para reproducir sonidos desde JavaScript? Clickdown.wav es solo 1k.

Respuesta

2

En iOS, no hay precarga. Esto fue hecho por Apple a propósito, para que el usuario no tenga que usar ancho de banda innecesario.

+3

Es siempre algo, ¿verdad? –

+0

Una solución alternativa sería activar load() en un evento de usuario (clic, desplazamiento, etc.). –

+0

Posiblemente, pero el fraseo de @ cf_PhillipSenn parece implicar * cada * evento 'atado', no solo el primero. – msanford

1

Puede tratar de colocar un "botón" invisible sobre su aplicación web, que obtiene un clic con la primera interacción del usuario. Después de eso, la interacción sound.play(); debería funcionar. Mira esto thread.

1

es necesario utilizar eventos de toque no haga clic en eventos, cambiar el clic a "touchstart" y el retraso desaparecerá

Cuestiones relacionadas