English 中文(简体)
使用Javascript播放声音通知?
原标题:
  • 时间:2009-01-16 10:41:47
  •  标签:

我该怎么做,以便每当用户点击链接时我们播放声音?在这里使用 JavaScript 和 jQuery。

问题回答

使用这个插件:https://github.com/admsev/jquery-play-sound

$.playSound( http://example.org/sound.mp3 );

Put an <audio> element on your page.
Get your audio element and call the play() method:

document.getElementById( yourAudioTag ).play();

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

这个网站揭示了一些其他很酷的事情,比如load()pause()和音频元素的其他一些属性。

你想要播放这个音频元素的时间完全由你决定。阅读按钮的文本,并与“否”进行比较,如果你愿意的话。

Alternatively

将此翻译成中文:http://www.schillmania.com/projects/soundmanager2/ 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 );
});

这是它的演示: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>";
} 

使用 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 append。

JavaScript 声音管理器

将此翻译为中文:http://www.schillmania.com/projects/soundmanager2/

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

我写了一个小函数,可以使用Web音频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、Gecko浏览器和iPhone兼容。

将此翻译为中文:http://www.jplayer.org/ http://www.jplayer.org/

以下代码可能会帮助您仅使用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>

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

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

也可以在这里找到答案:如何使用 JavaScript 播放声音的跨平台、跨浏览器方案?





相关问题
热门标签