Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-播放音频和随机生成的值_Javascript_Arrays_Audio_Random - Fatal编程技术网

JavaScript-播放音频和随机生成的值

JavaScript-播放音频和随机生成的值,javascript,arrays,audio,random,Javascript,Arrays,Audio,Random,我有一个函数,它以不重复的方式显示数组中的随机字 我还想为每个单词播放一段声音片段(该声音将是单词的发音) 我知道如何播放单个声音,以及如何从一系列声音中播放随机声音。但是如果我创建了一个声音数组,那么如何仅在显示相应单词时播放每个声音呢 这就是我正在处理的问题: const p=document.getElementById(“randomWord”); const origWords=[“alpha”,“bravo”,“charlie”,“delta”,“echo”]; const aud

我有一个函数,它以不重复的方式显示数组中的随机字

我还想为每个单词播放一段声音片段(该声音将是单词的发音)

我知道如何播放单个声音,以及如何从一系列声音中播放随机声音。但是如果我创建了一个声音数组,那么如何仅在显示相应单词时播放每个声音呢

这就是我正在处理的问题:

const p=document.getElementById(“randomWord”);
const origWords=[“alpha”,“bravo”,“charlie”,“delta”,“echo”];
const audioClips=[“alpha.mp3”、“bravo.mp3”、“charlie.mp3”、“delta.mp3”、“echo.mp3”];
让剩余单词=[];
函数随机化(){
如果(remainingWords.length==0)remainingWords=origWords.slice();
常数{
长度
}=剩余单词;
const[word]=remainingWords.splice(Math.floor(Math.random()*长度),1);
p、 text内容=单词;
}
随机字

我会改变您存储数据的方式。您可以使用对象数组,而不是
origWords
audioClips

const myWords = [
    {
       text: "alpha",
       audio: "alpha.mp3"
    },
    {
       text: "bravo",
       audio: "bravo.mp3"
    },
    ...
] 
然后,在获得随机索引后的函数中,只需访问
.text
.audio

编辑:代码段
const p=document.getElementById(“randomWord”);
常量myWords=[
{
文字:“阿尔法”,
音频:“alpha.mp3”
},
{
文字:“好极了”,
音频:“好极了,mp3”
}
];
让剩余单词=[];
函数随机化(){
如果(remainingWords.length==0)remainingWords=myWords.slice();
设长度=剩余单词数。长度;
让randomIndex=Math.floor(Math.random()*长度);
常量词=剩余词[随机索引];
剩余单词拼接(随机索引,1);
console.log(word);
console.dir(p);
p、 textContent=word.text;
//这里的音频代码类似于audio.play(word.audio);
}
随机字

我会改变您存储数据的方式。您可以使用对象数组,而不是
origWords
audioClips

const myWords = [
    {
       text: "alpha",
       audio: "alpha.mp3"
    },
    {
       text: "bravo",
       audio: "bravo.mp3"
    },
    ...
] 
然后,在获得随机索引后的函数中,只需访问
.text
.audio

编辑:代码段
const p=document.getElementById(“randomWord”);
常量myWords=[
{
文字:“阿尔法”,
音频:“alpha.mp3”
},
{
文字:“好极了”,
音频:“好极了,mp3”
}
];
让剩余单词=[];
函数随机化(){
如果(remainingWords.length==0)remainingWords=myWords.slice();
设长度=剩余单词数。长度;
让randomIndex=Math.floor(Math.random()*长度);
常量词=剩余词[随机索引];
剩余单词拼接(随机索引,1);
console.log(word);
console.dir(p);
p、 textContent=word.text;
//这里的音频代码类似于audio.play(word.audio);
}
随机字

我会使用hashmap,例如:

const origWords = {"alpha":"alpha.mp3", "bravo":"bravo.mp3", "charlie":"charlie.mp3", "delta":"delta.mp3", "echo":"echo.mp3"};

...    

randomIndex = randomize();
key = Object.keys(origWords)[randomIndex];
p.textContent = key;
playSound(origWords[key]);
...

我会使用hashmap,例如:

const origWords = {"alpha":"alpha.mp3", "bravo":"bravo.mp3", "charlie":"charlie.mp3", "delta":"delta.mp3", "echo":"echo.mp3"};

...    

randomIndex = randomize();
key = Object.keys(origWords)[randomIndex];
p.textContent = key;
playSound(origWords[key]);
...

在对象中使用单词作为键,使用声音作为值。然后随机选择其中一个,将关键字显示为单词并播放声音值在对象中使用这些单词作为关键字并将声音作为值。然后随机选择其中一个,并将关键字显示为声音的单词和播放值。我将两个数组替换为这样的对象数组。但在那之后我有点迷路了。我还在学习JS。你能给我举一个我下一步该做什么的例子吗?单词出现了,但我没有声音。。。当文本显示时,它应该自动播放吗?我需要一个额外的功能来播放声音吗?@distance还有,我不再收到不重复的单词,我想保留这些单词。@MikeMichaels啊!为了方便起见,只需编辑代码,我只需快速编辑代码,就可以制作一个如何访问对象键/值对的示例。是的,你必须让播放声音成为javascript。我知道如何使用
audio.play()播放声音,但在这里是这样做的吗?当显示每个随机单词时,我可以在代码中更改什么使声音自动播放?我将两个数组替换为这样的对象数组。但在那之后我有点迷路了。我还在学习JS。你能给我举一个我下一步该做什么的例子吗?单词出现了,但我没有声音。。。当文本显示时,它应该自动播放吗?我需要一个额外的功能来播放声音吗?@distance还有,我不再收到不重复的单词,我想保留这些单词。@MikeMichaels啊!为了方便起见,只需编辑代码,我只需快速编辑代码,就可以制作一个如何访问对象键/值对的示例。是的,你必须让播放声音成为javascript。我知道如何使用
audio.play()播放声音,但在这里是这样做的吗?当显示每个随机单词时,我可以在代码中更改什么使声音自动播放?