使用Javascript更改HTML声音

lfapxunr  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(372)

我想用另一个音频元素更改我插入的音频元素。
我在以下位置检查了解决方案:Create Audio element dynamically in Javascript,我不明白为什么我的代码不工作。
在HTML中我有:

<audio id="sound" src="shush1.mp3" controls>
    Your Browser Does Not Support the Audio Feature
</audio>

babySounds.js中我有:

var sound = document.createElement('audio');
sound.src = "Shush2.mp3";
sound.controls = "controls";
document.getElementById("sound").appendChild(sound);
xuo3flqw

xuo3flqw1#

您的代码尝试将新的audio元素附加为已有元素(appendChild)的 child,而不是替换它。
如果您想替换它,可以在所有未过时的浏览器中使用replaceWith method

const sound = /*...*/;
document.getElementById("sound").replaceWith(sound);`

但是如果你只是想改变声音的内容,你可以赋值给现有元素的src属性,而不需要创建一个全新的元素:

document.getElementById("sound").src = "Shush2.mp3";

根据质量标准:
如果媒体元素的src属性被设置或改变,则用户代理必须调用媒体元素的媒体元素加载算法。
...
媒体元素上的src IDL属性必须反映同名的内容属性。

相关问题