使用Javascript播放声音通知?
我怎么做,所以每当用户点击一个链接,我们播放声音? 在这里使用JavaScript和jQuery。
https://github.com/admsev/jquery-play-sound
$ .playSound(' http://example.org/sound.mp3 ');
把一个<audio>
元素放在你的页面上。
获取audio元素并调用play()
方法:
document.getElementById('yourAudioTag').play();
看看这个例子: http : //www.storiesinflight.com/html5/audio.html
这个站点揭示了一些你可以做的其他很酷的事情,比如load()
, pause()
和audio元素的一些其他属性。
当你想播放这个audio元素是由你决定的。 阅读button的文本,如果你喜欢比较“不”。
另外
http://www.schillmania.com/projects/soundmanager2/
SoundManager 2提供了一个易于使用的API,允许在任何现代浏览器(包括IE 6+)中播放声音。 如果浏览器不支持HTML5,那么它从Flash获得帮助。 如果你想严格的HTML5和没有闪光,有一个设置,preferFlash = false
它支持iPad,iPhone(iOS4)和其他支持HTML5的设备+浏览器的100%免Flashaudio
使用如下简单:
<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/
发现这样的事情:
//javascript: function playSound( url ){ document.getElementById("sound").innerHTML="<embed src='"+url+"' hidden=true autostart=true loop=false>"; }
JavaScript声音pipe理器:
使用html5audio标签和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();
代码从这里 。
在我的实现中,我将audio直接embedded到HTML中,而不添加jquery。
$('a').click(function(){ $('embed').remove(); $('body').append('<embed src="/path/to/your/sound.wav" autostart="true" hidden="true" loop="false">'); });
我写了一个小function,可以做到这一点,用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); };
新的发展…似乎与IE浏览器,壁虎浏览器和iPhone到目前为止…
以下代码可能会帮助您在仅使用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>
首先,我不喜欢作为一个用户。
最好的办法可能是使用一个小的闪存小程序,在后台播放声音。
这里也回答: 跨平台,跨浏览器的方式来播放从Javascript的声音?