Estou fazendo um jogo com HTML5 e Javascript.
Como eu reproduzia o áudio do jogo via Javascript?
javascript
html
html5-audio
Ryan S.
fonte
fonte
<audio>
. Esse elemento terá JS ganchos apropriados para 'play', 'pause', etc ...Respostas:
Se você não quiser mexer com elementos HTML:
Mostrar snippet de código
Isso usa a
HTMLAudioElement
interface, que reproduz o áudio da mesma maneira que o<audio>
elemento .Se você precisar de mais funcionalidades, usei a biblioteca howler.js e achei simples e útil.
Mostrar snippet de código
fonte
<audio>
. A Wikipedia possui uma tabela de compatibilidade de formatos de áudio .new Audio()
pode reproduzir arquivos WAV em todos os navegadores, exceto no Internet Explorer.É fácil, basta pegar seu
audio
elemento e chamar oplay()
método:Confira este exemplo: http://www.storiesinflight.com/html5/audio.html
Este site revela alguns dos outros coisas legais que você pode fazer, como
load()
,pause()
, e algumas outras propriedades doaudio
elemento.fonte
http://www.schillmania.com/projects/soundmanager2/
O SoundManager 2 fornece uma API fácil de usar que permite que o som seja reproduzido em qualquer navegador moderno, incluindo o IE 6+. Se o navegador não suportar HTML5, ele recebe ajuda do flash. Se você deseja estritamente HTML5 e sem flash, há uma configuração para isso,
preferFlash=false
Ele suporta áudio 100% livre de flash no iPad, iPhone (iOS4) e outros dispositivos habilitados para HTML5 + navegadores
O uso é tão simples quanto:
Aqui está uma demonstração disso em ação: http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/
fonte
Esta é uma pergunta bastante antiga, mas quero adicionar algumas informações úteis. O iniciador de tópicos mencionou que ele é
"making a game"
. Portanto, para todos que precisam de áudio para o desenvolvimento de jogos, há uma escolha melhor do que apenas uma<audio>
tag ou umaHTMLAudioElement
. Eu acho que você deve considerar o uso da API de áudio da Web :fonte
Fácil com o Jquery
// define tags de áudio sem pré-carregamento
// adiciona o jquery ao carregamento
// escreve métodos para tocar e parar
// decide como controlar o áudio
EDITAR
Para responder à pergunta de @ stomy, eis como você usaria essa abordagem para reproduzir uma lista de reprodução :
Defina suas músicas em um objeto:
Use as funções trigger e play como antes:
Carregue a primeira música dinamicamente:
Redefina a fonte de áudio para a próxima música na lista de reprodução, quando a música atual terminar:
Veja aqui um exemplo deste código em ação.
fonte
ended
evento a ser emitido e iniciar o próximo arquivo de áudio na lista (presumivelmente você está acompanhando o DOM, a memória JS, etc.) ) developer.mozilla.org/pt-BR/docs/Web/Events/endedAdicione um áudio oculto e reproduza-o.
fonte
Se você estiver recebendo o seguinte erro:
Isso significa que o usuário precisa interagir primeiro com o site (como diz a mensagem de erro). Nesse caso, você precisa usar
click
ou apenas outro ouvinte de evento, para que o usuário possa interagir com seu site.Se você deseja carregar automaticamente o áudio e não deseja que o usuário interaja com o documento primeiro, você pode usá-lo
setTimeout
.O som começará após 0,5 segundo.
fonte
fonte
fonte
Solução bastante simples se você tiver uma tag HTML como abaixo:
Basta usar o JavaScript para reproduzi-lo, assim:
fonte
Tive alguns problemas relacionados ao retorno do objeto de promessa de áudio e outros relacionados à interação do usuário com sons. Acabo usando esse pequeno objeto,
Eu recomendaria implementar os sons de reprodução mais próximos do evento de interação que o usuário está usando.
E implemente-o da seguinte maneira:
fonte
Eu usei esse método para tocar um som ...
fonte
se você quiser reproduzir seu áudio sempre que a página for aberta, faça o seguinte.
e chame isso de playMusic () sempre que precisar no código do jogo.
fonte
Com os requisitos de segurança de que um usuário deve interagir com uma página da Web para permitir o áudio, é assim que eu faço, com base na leitura de muitos artigos, inclusive neste site
Como todos os arquivos de áudio foram "reproduzidos" no mesmo OnClick, agora você pode reproduzi-los a qualquer momento no jogo, sem restrições
Observe que, para melhor compatibilidade, não use arquivos wav, o MS não os suporta
Use mp3 e ogg, que abrange todos os dispositivos
Exemplo:
repita conforme necessário para todo o áudio do jogo
Então:
repita conforme necessário, exceto não interrompa o áudio que deseja ouvir quando o jogo iniciar
fonte
Você pode usar a API de áudio da Web para reproduzir sons. Existem algumas bibliotecas de áudio por aí, como howler.js, soundjs etc. Se você não se preocupa com navegadores antigos, também pode verificar em http://musquitojs.com/ . Ele fornece uma API simples para criar e reproduzir sons.
Por exemplo, para reproduzir um som, tudo o que você precisa fazer é.
A biblioteca também suporta Sprites de áudio.
fonte
Este é um JS que eu criei em um projeto de AI do bebê no qual estou trabalhando. Espero que isso seja capaz de ajudá-lo.
fonte
Apenas use isto:
Ou, para simplificar:
Amostra:
fonte
Eu tive alguns problemas com a reprodução de áudio, principalmente porque o Chrome atualizou que o usuário precisa interagir primeiro com o documento.
No entanto, em quase todas as soluções que encontrei, o código JS precisa definir ativamente os ouvintes (por exemplo, cliques no botão) para receber eventos do usuário para reproduzir o áudio.
No meu caso, eu só queria que meu jogo jogasse BGM assim que o jogador interage com ele, então me tornei um ouvinte simples que fica checando se a página da web está sendo interagida ou não.
fonte
Aqui está uma solução para o ano de 2020 quando você estiver vendo o erro:
Não seja esperto e pense que ooh é uma velha escola
oclick
, apenas moverei a página para o meu jQuery ou meu arquivo JavaScript externo. Não. Precisa ser umonclick
.fonte