尝试在单击按钮时播放随机图像和随机声音
Trying to have a random image and random sound play on button click
单击按钮时图像随机化成功,但声音不会播放。我不知道音频 JS 有什么问题,但这让我很困惑。我想让两者在单击同一个按钮时随机执行。我正在使用 Chrome 来测试我的工作。
<script type = "text/javascript">
//Create random picture array
function imgchange() {
var myImages1 = new Array();
myImages1[1] = "Matthew1.jpg";
myImages1[2] = "Matthew2.jpg";
myImages1[3] = "Matthew3.jpg";
myImages1[4] = "Matthew4.jpg"; //Image Array
myImages1[5] = "Matthew5.jpg";
myImages1[6] = "Matthew6.jpg";
myImages1[7] = "Matthew7.jpg";
var rnd = Math.floor(Math.random() * myImages1.length);// Random Choice of Image
if (rnd == 0) {
rnd = 1;
}
document.getElementById("gen-img").src = myImages1[rnd];//Gets Image
}
function playRandomSound() {
//An array to house all of the URLs of your sounds
var sounds = new Audio["sound1.mp3", "sound2.mp3", "sound3.mp3", "sound4.mp3"];
//This line will select a random sound to play out of your provided URLS
var soundFile = sounds[Math.floor(Math.random() * sounds.length)];
//Find the player element that you created and generate an embed file to play the sound within it
document.getElementById("Button").innerHTML = "<embed src=\"" + soundfile + "\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
</script>
<body style="height: 663px">
<div class="Title" id="title">Alright! Alright! Alright!</div>
<p><img id="gen-img" src="img/who/1.jpg"></p>
<p> <input id="Button" type="button" value="Random" onclick="imgchange(); playRandomSound();"/></p>
</body>
您必须像这样创建一组声音:
var sounds = ["sound1.mp3", "sound2.mp3", "sound3.mp3", "sound4.mp3"].map(
(sound) => new Audio(sound)
);
您在 document.getElementById("Button").innerHTML
开头的行中也有错字,soundFile
的首字母是 F
。虽然我认为你不需要那条线,但你可以通过调用 play()
来播放声音,比如 soundFile.play()
,请检查下面的代码片段:
//Create random picture array
function imgchange() {
var myImages1 = new Array();
myImages1[1] = "Matthew1.jpg";
myImages1[2] = "Matthew2.jpg";
myImages1[3] = "Matthew3.jpg";
myImages1[4] = "Matthew4.jpg"; //Image Array
myImages1[5] = "Matthew5.jpg";
myImages1[6] = "Matthew6.jpg";
myImages1[7] = "Matthew7.jpg";
var rnd = Math.floor(Math.random() * myImages1.length); // Random Choice of Image
if (rnd == 0) {
rnd = 1;
}
document.getElementById("gen-img").src = myImages1[rnd]; //Gets Image
}
function playRandomSound() {
//An array to house all of the URLs of your sounds
var sounds = [
new Audio(
"https://interactive-examples.mdn.mozilla.net/media/examples/t-rex-roar.mp3"
),
];
// var sounds = new Audio([
// ("sound1.mp3", "sound2.mp3", "sound3.mp3", "sound4.mp3")
// ]();
//This line will select a random sound to play out of your provided URLS
var soundFile = sounds[Math.floor(Math.random() * sounds.length)];
soundFile.play()
//Find the player element that you created and generate an embed file to play the sound within it
document.getElementById("Button").innerHTML =
'<embed src="' +
soundFile +
'" hidden="true" autostart="true" loop="false" />';
}
<div class="Title" id="title">Alright! Alright! Alright!</div>
<p><img id="gen-img" src="img/who/1.jpg" /></p>
<p>
<input id="Button" type="button" value="Random" onclick="imgchange(); playRandomSound();" />
</p>
单击按钮时图像随机化成功,但声音不会播放。我不知道音频 JS 有什么问题,但这让我很困惑。我想让两者在单击同一个按钮时随机执行。我正在使用 Chrome 来测试我的工作。
<script type = "text/javascript">
//Create random picture array
function imgchange() {
var myImages1 = new Array();
myImages1[1] = "Matthew1.jpg";
myImages1[2] = "Matthew2.jpg";
myImages1[3] = "Matthew3.jpg";
myImages1[4] = "Matthew4.jpg"; //Image Array
myImages1[5] = "Matthew5.jpg";
myImages1[6] = "Matthew6.jpg";
myImages1[7] = "Matthew7.jpg";
var rnd = Math.floor(Math.random() * myImages1.length);// Random Choice of Image
if (rnd == 0) {
rnd = 1;
}
document.getElementById("gen-img").src = myImages1[rnd];//Gets Image
}
function playRandomSound() {
//An array to house all of the URLs of your sounds
var sounds = new Audio["sound1.mp3", "sound2.mp3", "sound3.mp3", "sound4.mp3"];
//This line will select a random sound to play out of your provided URLS
var soundFile = sounds[Math.floor(Math.random() * sounds.length)];
//Find the player element that you created and generate an embed file to play the sound within it
document.getElementById("Button").innerHTML = "<embed src=\"" + soundfile + "\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
</script>
<body style="height: 663px">
<div class="Title" id="title">Alright! Alright! Alright!</div>
<p><img id="gen-img" src="img/who/1.jpg"></p>
<p> <input id="Button" type="button" value="Random" onclick="imgchange(); playRandomSound();"/></p>
</body>
您必须像这样创建一组声音:
var sounds = ["sound1.mp3", "sound2.mp3", "sound3.mp3", "sound4.mp3"].map(
(sound) => new Audio(sound)
);
您在 document.getElementById("Button").innerHTML
开头的行中也有错字,soundFile
的首字母是 F
。虽然我认为你不需要那条线,但你可以通过调用 play()
来播放声音,比如 soundFile.play()
,请检查下面的代码片段:
//Create random picture array
function imgchange() {
var myImages1 = new Array();
myImages1[1] = "Matthew1.jpg";
myImages1[2] = "Matthew2.jpg";
myImages1[3] = "Matthew3.jpg";
myImages1[4] = "Matthew4.jpg"; //Image Array
myImages1[5] = "Matthew5.jpg";
myImages1[6] = "Matthew6.jpg";
myImages1[7] = "Matthew7.jpg";
var rnd = Math.floor(Math.random() * myImages1.length); // Random Choice of Image
if (rnd == 0) {
rnd = 1;
}
document.getElementById("gen-img").src = myImages1[rnd]; //Gets Image
}
function playRandomSound() {
//An array to house all of the URLs of your sounds
var sounds = [
new Audio(
"https://interactive-examples.mdn.mozilla.net/media/examples/t-rex-roar.mp3"
),
];
// var sounds = new Audio([
// ("sound1.mp3", "sound2.mp3", "sound3.mp3", "sound4.mp3")
// ]();
//This line will select a random sound to play out of your provided URLS
var soundFile = sounds[Math.floor(Math.random() * sounds.length)];
soundFile.play()
//Find the player element that you created and generate an embed file to play the sound within it
document.getElementById("Button").innerHTML =
'<embed src="' +
soundFile +
'" hidden="true" autostart="true" loop="false" />';
}
<div class="Title" id="title">Alright! Alright! Alright!</div>
<p><img id="gen-img" src="img/who/1.jpg" /></p>
<p>
<input id="Button" type="button" value="Random" onclick="imgchange(); playRandomSound();" />
</p>