#前提・実現したいこと
私は、JavaScriptとHTMLの音楽再生をするページを作っています。
そこで、再生ボタンを何度も押せば、ずっと重なって音楽が再生できるということになってしまいます。
なので、それを防止すべく、変数による制御を加えてみたのですが、なぜか今まで通り再生できてしまいます。
#コード
JavaScriptとHTMLが混ざっています。
<!DOCTYPE HTML> <html> <head> <script> var music = new Audio('intro.mp3'); music.addEventListener("ended", function () { music.pause(); console.log('音楽終わり\nmusic2の再生!!'); music2(); }, false); function music2(){ var music2 = new Audio('naka1.mp3'); music2.play(); console.log('music2の再生'); music2.addEventListener("ended", function () { music2.pause(); console.log('音楽終わり\nmusic3の再生!!'); music3(); }, false); } function music3(){ var music3 = new Audio('naka2.mp3'); music3.play(); music3.addEventListener("ended", function () { music3.currentTime = 0; music3.play(); console.log('ループ中...'); }, false); } function start() { if (started == undefined){ var started; music.play(); console.log('[再生]'); var started = "abc"; }else{ aleat("再生中..."); } } //setTimeout(function(){ //music.pause(); //}, 30000); </script> <meta charset=UTF-8> <title>TEST</title> <body bgcolor=#bdbdbd> </head> <body> <center><button onclick="start()" style="padding:18px;">再生</button></center> </body> </html>
#試したこと
変数を使ってみる→なぜかできない。
すみません。
Windows 7付属のメモ帳を使ってのプログラミング、さらに自分がわかればいいやという思いから、インデントをつけていませんでした。
付け足しておきます。
また、このコードは自分で独自に作成していますので、どこの知恵袋にも載っていないと思います。
のっている場所といえば私のパソコンとこのページ、また、ここまでいく前の再生で詰まっていた時の以下のURLしかないと思います。
https://teratail.com/questions/356834
次からはインデントを入れるように癖をつけた方がいいですよ。
それと、「知恵袋かどこから取ってきたのか」っていうのは、インデントの話もありそうですが、
多分、「自分で組んだのならわかるはず」という意味じゃないかなと。
つぎはぎでやっているのなら、意味を理解せずにやっていてもおかしくありませんが、
自分の頭で考えたのなら、できるはず……という意味かと。
回答3件
あなたの回答
tips
プレビュー