【问题标题】:Playing a specific sound according to random array outcome?根据随机数组结果播放特定声音?
【发布时间】:2014-10-02 22:11:28
【问题描述】:

我正在使用 2 个填充了单词的数组在 javascript 中创建一个“用户名”生成器,然后使用随机化从每个数组中显示 1 个单词。但是,假设我想在第一个数组中选择第二个单词时播放标记为“1.mp3”的特定声音,并在第二个数组中选择第九个单词时播放标记为“8.mp3”的声音。这些声音将在页面加载时按第一个数组声音的顺序播放,然后是第二个数组声音。我正在使用科尔多瓦的媒体插件来提供电话支持。谁能指出我正确的方向?

Javascript 数组如下所示:

var wordlist1 = ["Aggressive", "Amazing", "Attractive", "Black", "Broken", "Brave",
"Caring", "Cold", "Corny", "Delicious", "Dramatic", "Dull", "Euphoric", "Exotic",
"Evil", "Fabulous", "Feminine", "Fat", "Glorious", "Gripping", "Grand", "Hairy", 
"Horny", "Hard", "Immense", "Idiotic", "Inferior", "Jam-Packed", "Juicy", "Jealous", 
"Kooky", "Klutzy", "Knowledgeable", "Lame", "Lazy", "Loving", "Mad", "Milky", "Moist", 
"Naive", "Naughty", "Neglected", "Oily", "Obese", "Overcooked", "Passionate", "Party",
"Peaceful", "Pasty", "Questionable", "Queasy", "Qualified", "Reckless", "Repulsive",
"Rubbery", "Slimy", "Salty", "Stiff", "Thick", "Terrible", "Thunderous", "Ugly",
"Uncomfortable", "Unpleasant", "Violent", "Vivid", "Vicious", "Wobbly", "Wee", "Wet",
"Young", "Yummy", "Yellowish", "Zany", "Zappy", "Zealous"]
var displayword1 = wordlist1[Math.floor(Math.random() * wordlist1.length)];
document.getElementById("word1").innerHTML = displayword1

除了数组和名称的内容外,第二个数组几乎相同 然后我有一个 HTML 文档来加载脚本;

<p id="word1"></p>
<script src="main.js"></script>

【问题讨论】:

  • 您能否添加一些代码来描述您到目前为止所做的事情?
  • 我已经用一些代码编辑了原始帖子。

标签: javascript arrays cordova audio media


【解决方案1】:
var wordlist1 = ["Aggressive", "Amazing", "Attractive", "Black", "Broken", "Brave",
"Caring", "Cold", "Corny"]


var randomNumber = Math.floor(Math.random() * wordlist1.length);
var displayword1 = wordlist1[randomNumber];
document.getElementById("word1").innerHTML = displayword1
var media = new Media(randomNumber+".mp3", function(){/*success*/}, function(){/*error*/});
media.play();

也许您需要将成功回调更改为调用 this.play();

【讨论】:

  • 如果您想将特定文件映射到特定单词,我建议使用对象数组/集合。 var wordlist1 = [{word:"Aggressive",file:"1.mp3"},{word:"Aggressive",file:"2.mp3"}] var randomNumber = Math.floor(Math.random() * wordlist1 。长度); var displayword1 = wordlist1[randomNumber].word; var soundToPlay = wordlist1[randomNumber].file; document.getElementById("word1").innerHTML = displayword1 var media = new Media(soundToPlay, function(){/*success*/}, function(){/*error*/}); media.play();
  • 感谢您的回复。尽管您的两个答案似乎都可以使用,但由于某种原因,它并没有为我播放声音。知道为什么吗? ://
  • 你用控制台调试过这个吗?文件路径是否正确?输入远程 url 会发生什么?
猜你喜欢
  • 2020-09-12
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2019-05-21
  • 1970-01-01
相关资源
最近更新 更多