web-dev-qa-db-ja.com

Javascriptを使用して音声通知を再生しますか?

どうすればそれを行うことができますので、ユーザーがリンクをクリックするたびにサウンドが再生されますか?ここでjavascriptとjqueryを使用します。

86
Click Upvote
46

<audio>要素をページに配置します。
オーディオ要素を取得し、play()メソッドを呼び出します。

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

この例を確認してください: http://www.storiesinflight.com/html5/audio.html

このサイトload()pause()、およびオーディオ要素の他のいくつかのプロパティなど、実行できるその他のクールなことのいくつかを明らかにします。

正確に再生したい場合、このオーディオ要素はあなた次第です。ボタンのテキストを読み、必要に応じて「いいえ」と比較します。

代わりに

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

SoundManager 2は、IE 6+を含む最新のブラウザでサウンドを再生できる使いやすいAPIを提供します。ブラウザがHTML5をサポートしていない場合、Flashからヘルプを取得します。厳密にHTML5を使用し、フラッシュを使用しない場合は、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/

25

そのようなものを見つけました:

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

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();

コード ここから

私の実装では、jquery appendを使用せずに、音声をHTMLに直接埋め込みました。

12
Kai Noack

JavaScriptサウンドマネージャー:

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

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

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);

};
3
alex

新しいエマージャー...これまでのところIE、Geckoブラウザー、iPhoneと互換性があるようです...

http://www.jplayer.org/

2
degenerate

次のコードは、javascriptのみを使用してWebページでサウンドを再生するのに役立つ場合があります。詳細は 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>
1
Falak

まず最初に、私はユーザーとしてそれが好きではありません。

最善の方法は、おそらくバックグラウンドでサウンドを再生する小さなフラッシュアプ​​レットを使用することです。

また、ここで答えました: クロスプラットフォーム、クロスブラウザでJavascriptからサウンドを再生する方法?

0
Javache