通过jQuery更改源后,html音频无法找到文件

mar*_*tin 2 html audio jquery

我的.html文件中有这个音频元素:

<audio id ="captcha">
      <source id = "capt_wav" src = "doghouse.wav" type = "audio/wav" >
</audio>
Run Code Online (Sandbox Code Playgroud)

它播放音频.现在我需要使用jQuery动态更改src属性.然后我将原始的html音频设置为没有源(src ="")并且我使用此jQuery代码来设置源:

  $('#capt_wav').attr('src',"doghouse.wav");
Run Code Online (Sandbox Code Playgroud)

这实际上改变了源代码,我可以从控制台看到:

之前:

<source id="capt_wav" src="" type="audio/wav">
Run Code Online (Sandbox Code Playgroud)

后:

<source id="capt_wav" src="doghouse.wav" type="audio/wav">
Run Code Online (Sandbox Code Playgroud)

但在这种情况下它不播放音频,给我错误:

无效的URI.媒体资源的加载失败.@ file:///home/index.html

所有候选资源都无法加载.媒体加载暂停.@ file:///home/index.html

该文件在文件夹中,任何想法为什么它不起作用?html(它的来源)在两种情况下都是相同的.

Jac*_*ess 5

试试这个:

$("#capt_wav").attr("src", "doghouse.wav").detach().appendTo("#captcha");
Run Code Online (Sandbox Code Playgroud)

似乎浏览器仅在添加元素时播放文件,而不是仅在修改元素时播放文件.