抑制媒体资源的加载失败

时间:2018-01-26 11:44:23

标签: javascript php html

我的html中有一个音频标签,其中我有src =""。 当我播放音乐时,我从javascript更改src值。 但是,在加载页面时,我收到错误

无效的URI。媒体资源的加载失败。 game.php 所有候选资源都无法加载。媒体加载暂停。

我知道为什么,源逻辑上不存在。有没有办法告诉音频元素不要尝试从头开始加载src?

<div style="display: none;" >
<audio tabindex="0" id="audio" controls preload="auto" loop="true">
    <source src="">
</audio>
</div>

由于

2 个答案:

答案 0 :(得分:2)

从初始html中删除<source>,然后......

var a = new Audio('someaudio.mp3');

// File does not exist
a.onerror = function() {
    //nothing
};
//File exists
a.onloadeddata = function() {
    //add source from javascript
};

答案 1 :(得分:2)

只需创建<audio>元素,不用任何<source>,例如

<audio tabindex="0" id="audio" controls preload="auto" loop="true">
</audio>

然后在运行时,在需要/检查/验证时添加<source>,例如:

var audio = document.getElementsByTagName('audio')[0];

var source = document.createElement('src');console.log(source);
source.setAttribute('src','http://somewhere');

audio.appendChild(source);