Кросс-платформенный, кросс-браузерный способ воспроизведения звука с использованием jQuery 1.4?

Я пытаюсь заставить jQuery воспроизводить звук при наведении/щелчке элемента. (Это как флеш-сайт без вспышки)

Я пробовал методы, рекомендованные в Кросс-платформенный, кросс-браузерный способ воспроизведения звука из Javascript?, плагин jQuery Sound и несколько других учебных пособий без каких-либо успехов. Я предполагаю, что это происходит потому, что они не обновлялись с 2008 года.

Есть ли у кого-нибудь рекомендации?

Ответ 1

Не нужно ни одного из них. HTML-тег в сочетании с JavaScript сделает трюк.

<audio id="soundHandle" style="display: none;"></audio>
<script>
  soundHandle = document.getElementById('soundHandle');
  soundHandle.src = '/blah/blah.mp3';
  soundHandle.play();
</script>

Ответ 2

На самом деле это невозможно сделать по-настоящему кросс-браузерному способу, так как, например, iPhone будет воспроизводить звук только на специальной странице игрока. Однако некоторые из плагинов в других ответах должны выполнять эту работу для большинства (настольных) браузеров.

Ответ 3

Звуковой тег не работал у меня в некоторых браузерах, так вот как я это сделал:

function playBuzzer(){
        $("body").append("<embed src='/web/sounds/Buzz.mp3' autostart='true' loop='false' width='2' height='0'></embed>");
}

Всякий раз, когда я хочу играть звук (onmouseover, onclick, onload...), я вызываю эту функцию.

Ответ 5

http://codecanyon.net/item/fancy-music-player-v20-jquery-plugin/498071?ref=1stwebdesigner

Игрок работает так: сначала он обнаруживает, установлен ли Flash Player 9 или выше. Если да, будет использоваться скрытый флеш-фильм (swf), который связывается через javascript с пользовательским интерфейсом HTML. Если Flash Player не установлен, будет использован новый движок HTML5, который поддерживается всеми iToys (iPhone, iPad и т.д.).