以下を介して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();
音が出ないのですが、回避策はありますか?
Audioコンストラクタを HTMLAudioElement / に使用する正しい方法のようには見えません<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);
var snd = new Audio("data:audio/x-wav;base64, <URI data>");
snd.play();
splashをオブジェクト変数として宣言する必要はありません。
Base64変換は以下から簡単に実行できます https://dopiaza.org/tools/datauri/index.php