79

システムのインタラクティブなシミュレーションを作成するdhtmlアプリケーションを作成しています。シミュレーションのデータは別のツールから生成されており、すでに非常に大量のレガシーデータがあります。

シミュレーションの一部の手順では、オーディオの「ナレーション」クリップを再生する必要があります。複数のブラウザでこれを実現する簡単な方法を見つけることができませんでした。

Soundmanager2は私が必要としているものにかなり近いですが、mp3ファイルしか再生せず、レガシーデータにはいくつかの.wavファイルも含まれている可能性があります。

誰かが役立つかもしれない他のライブラリを持っていますか?

4

10 に答える 10

62

.wavファイルを処理するには、Real AudioやQuickTimeなどのプラグインを含める必要がありますが、これは機能するはずです...

//======================================================================
var soundEmbed = null;
//======================================================================
function soundPlay(which)
    {
    if (!soundEmbed)
        {
        soundEmbed = document.createElement("embed");
        soundEmbed.setAttribute("src", "/snd/"+which+".wav");
        soundEmbed.setAttribute("hidden", true);
        soundEmbed.setAttribute("autostart", true);
        }
    else
        {
        document.body.removeChild(soundEmbed);
        soundEmbed.removed = true;
        soundEmbed = null;
        soundEmbed = document.createElement("embed");
        soundEmbed.setAttribute("src", "/snd/"+which+".wav");
        soundEmbed.setAttribute("hidden", true);
        soundEmbed.setAttribute("autostart", true);
        }
    soundEmbed.removed = false;
    document.body.appendChild(soundEmbed);
    }
//======================================================================
于 2008-10-09T14:05:12.753 に答える
9

Prototype を使用している場合、Scriptaculous ライブラリにはサウンド API があります。jQueryにもプラグインがあるようです。

于 2008-10-09T13:11:57.243 に答える
8

dacracots のコードはきれいな基本的な dom ですが、何も考えずに書かれているのではないでしょうか? もちろん、最初に以前の埋め込みの存在を確認し、重複した埋め込み作成行を保存します。

var soundEmbed = null;
//=====================================================================

function soundPlay(which)
{
    if (soundEmbed)
       document.body.removeChild(soundEmbed);
    soundEmbed = document.createElement("embed");
    soundEmbed.setAttribute("src", "/snd/"+which+".wav");
    soundEmbed.setAttribute("hidden", true);
    soundEmbed.setAttribute("autostart", true);
    document.body.appendChild(soundEmbed);
}

やや似たような状況の解決策を探しているときに、ここで考えに出会いました。残念ながら、私のブラウザ Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.15) Gecko/2009102814 Ubuntu/8.04 (hardy) Firefox/3.0.15 はこれを試すと死んでしまいます。

最新のアップデートをインストールした後も、Firefox はクラッシュしますが、Opera は存続します。

于 2009-12-20T07:59:15.270 に答える
7

最も簡単で便利な方法は、小さなFlashクリップを使用してサウンドを再生することだと思います。JavaScriptソリューションではないことを感謝しますが、目標を達成するための最も簡単な方法です

前の同様の質問からのいくつかの追加のリンク:

于 2008-10-09T12:52:48.390 に答える
5

私はdacracotの答えが好きでした... jQueryでの同様のソリューションは次のとおりです。

function Play(sound) {
    $("#sound_").remove()
    $('body').append('<embed id="sound_" autostart="true" hidden="true" src="/static/sound/' + sound + '.wav" />');
}
于 2011-10-13T20:24:43.893 に答える
5

HTML5<audio>タグを使用できます。

于 2010-10-07T21:14:58.017 に答える
4
<audio controls>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

詳細については、 http://www.w3schools.com/html/html5_audio.aspを参照してください。

于 2012-12-10T19:28:43.607 に答える
3

Mootoolsを使用している場合は、MooSoundプラグインがあります。

于 2008-10-09T14:10:53.647 に答える
1

これには、プラグインに頼るよりもはるかに簡単な解決策があります。IE には独自の bgsound プロパティがあり、他のすべてのブラウザで動作させる別の方法があります。ここで私のチュートリアルをチェックしてください = http://www.andy-howard.com/how-to-play-sounds-cross-browser-including-ie/index.html

于 2014-05-13T07:56:01.727 に答える
0

wavファイルを使用したクロスブラウザーソリューションの場合、<audio>タグをデフォルトにしてから、ユーザーがIEを使用している場合、ここ<embed>で@dacracotが提案したソリューションに進むことをお勧めします.SOで少し検索するだけで簡単に確認できます.

于 2019-12-12T16:05:18.710 に答える