Pergunta

Estou tentando incorporar um som em um site de leilão. Eu quero que toda vez que a oferta de alguém, um som será reproduzido. Eu tentei um simples <embed> etiqueta com determinada identificação e depois sound.play() Através de JavaScript.

O som está sendo reproduzido, mas no IE, um novo usuário é solicitado a instalar uma extensão de media player "se ele confiar no site".

Existe uma maneira de fazê -lo tocar sem esta mensagem. O código a seguir está na página:

No HTML:

<embed src="success.wav" autostart="false" width="0" height="0" id="sound1" 
       enablejavascript="true">

No JavaScript:

function PlaySound(soundObj) {

  var sound = document.getElementById(soundObj);
  sound.Play();
}

E a chamada para a função:

PlaySound("sound1");
Foi útil?

Solução

Se você se sentir confortável exigindo que o usuário tenha flash, eu recomendo SoundManager2. Ele usa flash em segundo plano, mas é configurado inteiramente através do JavaScript, e é muito personalizado.

Se você quiser fazer isso completamente nativamente no navegador, você pode usar o <audio> Tag, mas você descobrirá que funciona apenas nos navegadores mais novos, e ainda há alguns problemas de navegador que você encontrará. Este artigo Ajaxiano fornece uma boa visão geral de como fazer isso e quais navegadores suportam quais formatos de áudio.

PS Uma opinião pessoal, se você não se importa: não jogue sons de fundo ou música sem antes pedir ao usuário. Nunca é automático e sempre dê ao usuário a opção de parar ou silenciar o som.

Outras dicas

Bem, a solução funcionou muito bem com o Sound Manager 2. Ao longo de todo o arquivo de instalação é de 2,8 MB, acho que apenas a pequena parte dele realmente foi usada.

O que fiz foi colocar o seguinte código no cabeçalho:

<script type="text/javascript">

soundManager.url = '<?php echo $root_address; ?>/js/soundmanager/swf/'; 
soundManager.debugMode = false;

soundManager.onload = function() {
  var mySound = soundManager.createSound({
    id: 'aSound',
    url: '<?php echo $root_address; ?>/success.mp3'
  });
}
</script>

E substituiu a chamada para a função de som do jogo com este código:

soundManager.play('aSound');

Eu usei a API mais simples para fazê -lo.

Obrigado novamente!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top