gpt4 book ai didi

javascript - 如何从阵列中挑选随机声音? (JS)

转载 作者:行者123 更新时间:2023-11-30 09:53:01 24 4
gpt4 key购买 nike

查看但找不到我的具体问题的答案。

我想做什么:

从我的 HTML 或另一个 JS 函数中调用此函数,并播放从我的 JS 中的数组中选择的随机声音。

使用稍微不同的代码只播放一种声音

我可以很容易地播放一种声音,我的代码在这个意义上是有效的,但是当我尝试使用以下代码播放多种声音时,我在控制台中遇到了这个错误:

audio.js:90 Uncaught TypeError: Cannot read property 'call' of undefined

我的代码不工作,如何解决?

到目前为止,这是我的代码:

var SoundRandom = function (soundNameRandom) {
this.soundNameRandom = soundNameRandom;
}

SoundRandom.prototype.playRandomSound = function() {
RandomSound = new Audio(this.soundNameRandom);
var randomSound = Math.random() * 10;
if (randomSound > 5 && isMuted == false) {
RandomSound[0].play();
}
else if (randomSound < 6 && isMuted == false) {
RandomSound[1].play();
}
}

var randomSound = new SoundRandom(["sword.mp3", "openinvy.mp3"]);

我用

调用它

randomSound.playRandomSound();

我的问题

我的代码有什么问题?我做错了什么或者我应该改变什么?仅使用 Javascript 就可以实现我想做的事情吗?我宁愿不使用 Jquery。我对 Javascript 的音频方面比较陌生,所以可能有些事情我不知道。

此外,我不想使用 HTML 音频标签,我想将所有内容都保留在 JS 中,正如我之前所说,它适用于单个声音片段,但不像我尝试做的那样是随机声音。

最佳答案

试试这个:

SoundRandom.prototype.playRandomSound = function() {
var randomSound = Math.random() * 10;
if (randomSound > 5 && isMuted == false) {
RandomSound = new Audio(this.soundNameRandom[0]);
RandomSound.play();
}
else if (randomSound < 6 && isMuted == false) {
RandomSound = new Audio(this.soundNameRandom[1]);
RandomSound.play();
}
}

我不知道这是否有效。然而,Audio 元素必须是一个字符串,但是您在 new Audio() 中放入了一个数组。我的代码的目标是首先获取随机整数,然后根据数组中给定的名称制作新音频并播放该元素。

关于javascript - 如何从阵列中挑选随机声音? (JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com