Воспроизведение звуковых уведомлений с помощью Javascript?

Как я могу это сделать, поэтому всякий раз, когда пользователь нажимает на ссылку, мы воспроизводим звук? Здесь можно использовать javascript и jquery.

Ответ 2

Поместите элемент <audio> на свою страницу.
Получите свой аудио-элемент и вызовите метод play():

document.getElementById('yourAudioTag').play();

Посмотрите этот пример: http://www.storiesinflight.com/html5/audio.html

Этот сайт раскрывает некоторые другие интересные вещи, которые вы можете сделать, такие как load(), pause() и несколько других свойств аудиоэлемент.

Когда вы хотите воспроизвести этот аудио-элемент, зависит от вас. Прочтите текст кнопки и сравните ее с "нет", если хотите.

В качестве альтернативы

http://www.schillmania.com/projects/soundmanager2/

SoundManager 2 предоставляет простой в использовании API, который позволяет воспроизводить звук в любом современном браузере, включая IE 6+. Если браузер не поддерживает HTML5, он получает помощь от flash. Если вы хотите строго HTML5 и никакой флеш, установите для этого параметр, предпочитайте Flash = false

Он поддерживает 100% Flash-аудио на iPad, iPhone (iOS4) и других устройствах с поддержкой HTML5 + браузеры

Использование выполняется так же, как:

<script src="soundmanager2.js"></script>
<script>
// where to find flash SWFs, if needed...
soundManager.url = '/path/to/swf-files/';

soundManager.onready(function() {
    soundManager.createSound({
        id: 'mySound',
        url: '/path/to/an.mp3'
    });

    // ...and play it
    soundManager.play('mySound');
});

Вот демонстрация этого в действии: http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/

Ответ 3

Нашел что-то вроде этого:

//javascript:
function playSound( url ){   
  document.getElementById("sound").innerHTML="<embed src='"+url+"' hidden=true autostart=true loop=false>";
} 

Ответ 4

Использование тега html5 и jquery:

// appending HTML5 Audio Tag in HTML Body
$('<audio id="chatAudio">
    <source src="notify.ogg" type="audio/ogg">
    <source src="notify.mp3" type="audio/mpeg">
</audio>').appendTo('body');

// play sound
$('#chatAudio')[0].play();

Код отсюда.

В моей реализации я добавил аудио встраивание непосредственно в HTML без добавления jquery.

Ответ 6

$('a').click(function(){
    $('embed').remove();
    $('body').append('<embed src="/path/to/your/sound.wav" autostart="true" hidden="true" loop="false">');
});

Ответ 7

Я написал небольшую функцию, которая может это сделать, с API веб-аудио...

var beep = function(duration, type, finishedCallback) {

    if (!(window.audioContext || window.webkitAudioContext)) {
        throw Error("Your browser does not support Audio Context.");
    }

    duration = +duration;

    // Only 0-4 are valid types.
    type = (type % 5) || 0;

    if (typeof finishedCallback != "function") {
        finishedCallback = function() {};   
    }

    var ctx = new (window.audioContext || window.webkitAudioContext);
    var osc = ctx.createOscillator();

    osc.type = type;

    osc.connect(ctx.destination);
    osc.noteOn(0);

    setTimeout(function() {
        osc.noteOff(0);
        finishedCallback();
    }, duration);

};

Ответ 8

Новое появление... похоже, совместимо с IE, браузерами Gecko и iPhone до сих пор...

http://www.jplayer.org/

Ответ 9

Следующий код может помочь вам воспроизводить звук на веб-странице, используя только javascript. Более подробную информацию вы можете найти на странице http://sourcecodemania.com/playing-sound-javascript-flash-player/

<script>
function getPlayer(pid) {
    var obj = document.getElementById(pid);
    if (obj.doPlay) return obj;
    for(i=0; i<obj.childNodes.length; i++) {
        var child = obj.childNodes[i];
        if (child.tagName == "EMBED") return child;
    }
}
function doPlay(fname) {
    var player=getPlayer("audio1");
    player.play(fname);
}
function doStop() {
    var player=getPlayer("audio1");
    player.doStop();
}
</script>

<form>
<input type="button" value="Play Sound" onClick="doPlay('texi.wav')">
<a href="#" onClick="doPlay('texi.wav')">[Play]</a>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
    width="40"
    height="40"
    id="audio1"
    align="middle">
    <embed src="wavplayer.swf?h=20&w=20"
        bgcolor="#ffffff"
        width="40"
        height="40"
        allowScriptAccess="always"
        type="application/x-shockwave-flash"
        pluginspage="http://www.macromedia.com/go/getflashplayer"
    />
</object>

<input type="button" value="Stop Sound" onClick="doStop()">
</form>

Ответ 10

Прежде всего, мне не понравится это как пользователь.

Лучший способ сделать - это, вероятно, использовать небольшой флеш-апплет, который воспроизводит ваш звук в фоновом режиме.

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