Estoy haciendo un juego con HTML5 y Javascript.
¿Cómo podría reproducir el audio del juego a través de Javascript?
javascript
html
html5-audio
Ryan S.
fuente
fuente
<audio>
. Ese elemento tendrá ganchos JS apropiados para 'reproducir', 'pausar', etc ...Respuestas:
Si no quieres meterte con elementos HTML:
Mostrar fragmento de código
Esto utiliza la
HTMLAudioElement
interfaz, que reproduce audio de la misma manera que el<audio>
elemento .Si necesita más funcionalidad, utilicé la biblioteca howler.js y la encontré simple y útil.
Mostrar fragmento de código
fuente
<audio>
. Wikipedia tiene una tabla de compatibilidad de formatos de audio .new Audio()
puede reproducir archivos WAV en todos los navegadores, excepto Internet Explorer.Es fácil, solo obtenga su
audio
elemento y llame alplay()
método:Mira este ejemplo: http://www.storiesinflight.com/html5/audio.html
Este sitio descubre algunas de las otras cosas que puedes hacer, como
load()
,pause()
y algunas otras propiedades delaudio
elemento.fuente
http://www.schillmania.com/projects/soundmanager2/
SoundManager 2 proporciona una API fácil de usar que permite reproducir el sonido en cualquier navegador moderno, incluido IE 6+. Si el navegador no admite HTML5, obtiene ayuda de flash. Si desea estrictamente HTML5 y sin flash, hay una configuración para eso,
preferFlash=false
Admite audio 100% sin flash en iPad, iPhone (iOS4) y otros dispositivos + navegadores habilitados para HTML5
El uso es tan simple como:
Aquí hay una demostración en acción: http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/
fuente
Esta es una pregunta bastante antigua, pero quiero agregar información útil. El iniciador del tema ha mencionado que él es
"making a game"
. Entonces, para todos los que necesitan audio para el desarrollo del juego, hay una mejor opción que solo una<audio>
etiqueta o unHTMLAudioElement
. Creo que debería considerar el uso de la API de audio web :fuente
Fácil con jquery
// establece etiquetas de audio sin precarga
// agrega jquery para cargar
// escribe métodos para jugar y parar
// decide cómo controlar el audio
EDITAR
Para abordar la pregunta de @ stomy, así es cómo usaría este enfoque para reproducir una lista de reproducción :
Configura tus canciones en un objeto:
Utilice las funciones de activación y reproducción como antes:
Cargue la primera canción dinámicamente:
Restablezca la fuente de audio a la siguiente canción en la lista de reproducción, cuando finalice la canción actual:
Vea aquí un ejemplo de este código en acción.
fuente
ended
evento que se emitirá e iniciar el siguiente archivo de audio en la lista (presumiblemente está realizando un seguimiento en la memoria DOM, JS, etc. ) developer.mozilla.org/en-US/docs/Web/Events/endedAgregue un audio oculto y reprodúzcalo.
fuente
Si obtiene el siguiente error:
Eso significa que el usuario debe interactuar primero con el sitio web (como dice el mensaje de error). En este caso, debe usar
click
o simplemente otro detector de eventos, para que el usuario pueda interactuar con su sitio web.Si desea cargar automáticamente el audio y no desea que el usuario interactúe primero con el documento, puede usarlo
setTimeout
.El sonido comenzará después de 0.5 segundos.
fuente
fuente
fuente
Solución bastante simple si tiene una etiqueta HTML como la siguiente:
Solo usa JavaScript para jugarlo, así:
fuente
Tuve algunos problemas relacionados con la devolución de objetos de promesa de audio y algunos problemas relacionados con la interacción del usuario con los sonidos. Terminé usando este pequeño objeto,
Recomendaría implementar los sonidos de reproducción más cercanos al evento de interacción que está utilizando el usuario.
E implementarlo de la siguiente manera:
fuente
Usé este método para reproducir un sonido ...
fuente
si desea reproducir su audio cada vez que se abre la página, haga lo siguiente.
y llama a este playMusic () siempre que lo necesites en tu código de juego.
fuente
Con los requisitos de seguridad de que un usuario debe interactuar con una página web para que se permita el audio, así es como lo hago, basado en la lectura de muchos artículos, incluso en este sitio
Debido a que todos los archivos de audio se han "reproducido" en el mismo OnClick, ahora puedes reproducirlos en cualquier momento del juego sin restricciones
Tenga en cuenta que para una mejor compatibilidad no use archivos wav, MS no los admite
Use mp3 y ogg, que cubre todos los dispositivos
Ejemplo:
repita según sea necesario para todo el audio en el juego
Entonces:
repita según sea necesario, excepto que no pause el audio que desea escuchar cuando comience el juego
fuente
Puede usar la API de audio web para reproducir sonidos. Existen bastantes bibliotecas de audio como howler.js, soundjs, etc. Si no se preocupa por los navegadores antiguos, también puede consultar http://musquitojs.com/ . Proporciona una API simple para crear y reproducir sonidos.
Por ejemplo, para reproducir un sonido todo lo que tienes que hacer es.
La biblioteca también es compatible con Audio Sprites.
fuente
Este es un JS que se me ocurrió en un proyecto de IA para bebés con el que estoy trabajando Espero que esto pueda ayudarte.
fuente
Solo usa esto:
O, para hacerlo más simple:
Muestra:
fuente
Tuve algunos problemas con la reproducción de audio, especialmente desde que Chrome ha actualizado que el usuario tiene que interactuar primero con el documento.
Sin embargo, en casi todas las soluciones que encontré es que el código JS tiene que configurar activamente los oyentes (por ejemplo, clics en los botones) para recibir eventos del usuario para reproducir el audio.
En mi caso, solo quería que mi juego jugara BGM tan pronto como el jugador interactúe con él, así que me convertí en un simple oyente que sigue comprobando si la página web está interactuando o no.
fuente
Aquí hay una solución para el año 2020 cuando vea el error:
No seas astuto y pienses que es una vieja escuela
oclick
, solo moveré eso hacia abajo en mi página jQuery o mi archivo JavaScript externo. No Tiene que ser unonclick
.fuente