32

次のようにして、JavaScriptでサウンドを再生できます。

    var snd = new Audio('sound.wav');
    snd.play();

これにより必要なサウンドが再生されますが、ロードが遅くなったり、まったくロードされなかったりする場合があるため、ベース 64 でサウンドをエンコードし、この方法で再生しようとしました。

      var splash = {
prefix: "data:audio/wav;base64,",
sound: [ "*base64 string here*" ] };

    var snd = new Audio(splash); 
    snd.play();

音が出ないのですが、何か方法はありますか?

4

2 に答える 2

64

これは、 HTMLAudioElement /のAudioコンストラクターを使用する正しい方法のようには見えません。<audio>

微調整

var snd = new Audio("data:audio/wav;base64," + base64string);
snd.play();

コンソールでは機能するがスクリプトでは機能しない場合は、ガベージ コレクションが行われている可能性があります。

var Sound = (function () {
    var df = document.createDocumentFragment();
    return function Sound(src) {
        var snd = new Audio(src);
        df.appendChild(snd); // keep in fragment until finished playing
        snd.addEventListener('ended', function () {df.removeChild(snd);});
        snd.play();
        return snd;
    }
}());
// then do it
var snd = Sound("data:audio/wav;base64," + base64string);
于 2013-07-20T13:33:20.637 に答える
11
var snd = new Audio("data:audio/x-wav;base64, <URI data>");
snd.play();

スプラッシュをオブジェクト変数として宣言する必要はありません。

Base64 変換は、 https ://dopiaza.org/tools/datauri/index.php から簡単に実行でき ます。

于 2016-12-28T04:05:06.610 に答える