【问题标题】:Preloading my audio file in html在 html 中预加载我的音频文件
【发布时间】:2013-05-06 17:25:52
【问题描述】:

我目前正在使用以下方式在我的网站上播放音效。每次从我的从设备收到协议时,我都需要播放声音:

<script>
function RxProtocol()
{
    playSound('audio123.wav');
}

function playSound(soundfile) 
{
    document.getElementById("dummy").innerHTML=
    "<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
}
</script>

<body>
<span id="dummy"></span>
</body>

但似乎这样播放的音频每次都会延迟。在我收到我的协议 2 秒后,只播放了音频。

是因为我没有预加载我的音频吗?你们能教我如何修改我的代码并使其成为预加载启用吗?

【问题讨论】:

  • 我认为您不能预加载音频文件。调用RxProtocol() 的代码是什么?也许延迟就在那里。
  • 是吗?但是我从网上搜索我发现有一个预加载属性w3schools.com/tags/att_audio_preload.asp。但是不知道怎么用……
  • 这是 HTML5 的一部分,假设您想要代码也适用于旧版浏览器。
  • 是不是用我上面的代码,不可能有延迟?
  • 就像我说的,延迟可能出现在调用RxProtocol() 函数的任何代码中。如果您不想发布它,那很好,但我们不可能在这里为您提供进一步的帮助。

标签: javascript html


【解决方案1】:

你可以试试preload attribute of html5 audio tag

点赞preload="auto"

另请阅读http://webdesignledger.com/tips/audio-and-video-with-html5http://code.google.com/p/html5-preloader/

【讨论】:

【解决方案2】:

不知何故,我的以下编码适用于 Firefox 和 chrome,但不适用于 IE9:

<script>
function RxProtocol()
 {
    var a = document.getElementById("audio1");
    a.play();
 }

</script>

<body>
<audio id="audio1">
<source src="audio.wav" type="audio/wav">
<source src="audio.mp3" type="audio/mpeg">
audio tag not supported.
</audio>
</body>

经过尝试和尝试,我发现我需要将以下内容放入IE9才能正常工作。 Firefox 和 Chrome 也可以:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

在此之前,我放了以下仅适用于 Firefox 和 Chrome 的代码:

 <meta http-equiv="Pragma" content="no-cache"/>

你们知道这两个meta有什么区别吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    相关资源
    最近更新 更多