ショボ短歌会

セレクトボックスで選択した音源を鳴らしたいのですが、選択がうまく動きません。
他の方法でもよいので、解決方法をよろしくお願いします。

ソース一部抜粋
//HTML//////////////////////////////////////////////////////
<form name="formlist">
<select id="list" name="list">
<option value="piano">ピアノ</option>
<option value="guiter">ギター</option>
</select>
</form>

//JS////////////////////////////////////////////////////////
var piano = piano.wav;
var guiter = guiter.wav;

var sound = document.formlist.list.value;
alert(sound); //確認用

playSound(sound);

A 回答 (1件)

こんにちは



どのような環境で実行するのでしょうか?
ご質問文内にHTMLとあるのでブラウザっぽいのだけれど、そのままだといきなりエラーになりませんか?
 「未定義なのでwav属性は参照できない」とか言う感じの・・・
それとも、それ以前のスクリプトが省略されているのだろうか…?

「音源を鳴らしたい」とありますが、ご提示の方法で音が出るのでしょうか?
あるいは、関数定義部分を省略しているとか?


環境が不明ですが、通常のブラウザ環境ならHTML5のaudio要素を利用するのが便利かと思いますが?
https://developer.mozilla.org/ja/docs/Web/HTML/U …

でも、通常のスクリプトにはplaySoundなるメソッドは無いようですし・・・
https://developer.mozilla.org/ja/docs/Web/API/HT …

あるいは、なんかのライブラリでも使用なさっているのでしょうか?
https://github.com/admsev/jquery-play-sound


バックグラウンドがわからないので、疑問形ばかりになってしまいましたが、もしもブラウザ環境を想定しているのなら、上にも記したようにaudio要素を利用するのがよろしいように思います。

※ 意味が違っていたなら、スルーしてください。
    • good
    • 0
この回答へのお礼

実行環境はブラウザ上でした。
説明もソースも足りなくてすみませんでした。考えが煮詰まってしまって・・・。
ステップシーケンサーの一部分なのですが、一度リセットして一つ一つシンプル化していく事にしました。

ありがとうございました。

<script type="text/javascript">
function play() {
var audio = new Audio();
audio.src = document.formlist.list.value;
audio.play();
}
</script>


<input type="button" onclick="play()" value="Play">

<form name="formlist">
<select id="list" name="list">
<option value="piano.wav">ピアノ</option>
<option value="guiter.wav">ギター</option>
</select>
</form>

お礼日時:2017/06/02 13:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!