使用Javascript播放声音通知?

Cli*_*ote 86 javascript audio jquery

我怎么能这样做,所以每当用户点击链接我们发出声音?在这里使用javascript和jquery.

Jor*_*tel 25

<audio>在页面上放置一个元素.
获取音频元素并调用play()方法:

document.getElementById('yourAudioTag').play();
Run Code Online (Sandbox Code Playgroud)

看看这个例子:http://www.storiesinflight.com/html5/audio.html

本网站揭示的其他一些很酷的事情可以做,比如load(),pause()和音频元素的一些其他属性.

当您想要播放时,此音频元素取决于您.如果您愿意,请阅读按钮的文本并将其与"否"进行比较.

另外

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

SoundManager 2提供了一个易于使用的API,允许在任何现代浏览器中播放声音,包括IE 6+.如果浏览器不支持HTML5,那么它会从flash获得帮助.如果你想要严格的HTML5并且没有flash,那么有一个设置,preferFlash = false

它支持iPad,iPhone(iOS4)和其他支持HTML5的设备+浏览器上的100%无Flash音频

使用就像:

<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');
});
Run Code Online (Sandbox Code Playgroud)

以下是它的实际演示:http://www.schillmania.com/projects/soundmanager2/demo/christmas-lights/


Xn0*_*v3r 21

发现类似的东西:

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

  • 延迟来自DOM解析,然后加载文件,并启动它.如果你预加载它,那么你可以[在需要时启动它](http://stackoverflow.com/a/2779515/99923). (9认同)
  • 这很慢.使用Windows浏览器需要将近一秒钟的时间 (5认同)

Kai*_*ack 12

使用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();
Run Code Online (Sandbox Code Playgroud)

代码来自这里.

在我的实现中,我添加了直接嵌入到HTML中的音频而没有附加jquery.

  • 仅供参考,我在ajax函数(在页面加载时运行)的成功处理程序上播放声音,并得到此错误:`未捕获(在promise中)DOMException:play()失败,因为用户没有首先与文档交互`,Chrome`版本70.0.3538.102(官方版本)(64位)`...似乎是解决方案:/sf/answers/3697520501/ (2认同)

And*_*ott 7

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


Jav*_*che 0

首先,作为用户我不喜欢这样。

最好的方法可能是使用一个小的 Flash 小程序在后台播放声音。

还在这里回答:Cross-platform, cross-browser way to play sound from Javascript?

  • 如果用户知道会播放声音,那有什么不好呢? (3认同)
  • 这很有用,如果用户在新订单到达时需要蜂鸣警报怎么办?也许用户并没有一直盯着屏幕,也许我需要小便并打开蜂鸣声,然后其他人可以回答命令..只是几个例子.. (3认同)