Воспроизведение звуковых уведомлений с использованием Javascript? - PullRequest
85 голосов
/ 16 января 2009

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

Ответы [ 10 ]

46 голосов
/ 06 апреля 2012
25 голосов
/ 27 августа 2013

Поместите элемент <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/

20 голосов
/ 16 января 2009

Нашел что-то подобное:

//javascript:
function playSound( url ){   
  document.getElementById("sound").innerHTML="<embed src='"+url+"' hidden=true autostart=true loop=false>";
} 
12 голосов
/ 05 июня 2014

Использование звукового тега 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.

9 голосов
/ 16 января 2009
7 голосов
/ 28 января 2010
$('a').click(function(){
    $('embed').remove();
    $('body').append('<embed src="/path/to/your/sound.wav" autostart="true" hidden="true" loop="false">');
});
3 голосов
/ 02 ноября 2012

Я написал небольшую функцию, которая может это сделать, с помощью Web Audio 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);

};
2 голосов
/ 25 февраля 2011

New Emerger ... кажется, пока совместим с IE, браузерами Gecko и iPhone ...

http://www.jplayer.org/

1 голос
/ 05 августа 2011

Следующий код может помочь вам воспроизвести звук на веб-странице, используя только 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>
0 голосов
/ 16 января 2009

Перво-наперво, я не хотел бы этого как пользователь.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...