プルダウンで再生する音楽のループ方法



0   名前: spk : 2006/05/21(日) 13:34  ID:6jXYWxG1
optionタグで音楽データを選択 → インラインフレーム(menu.htmlでname=music_page)で再生させる、というのを作っていたのですが、
再生させるまでは出来たのですが、音楽をループさせる方法がわかりません。
(HTML板で質問したところ、こちらの板で質問した方が良いと言う事なので・・・)

以下、ソースコピペです。
よろしくお願いいたします。

<form method="post" name="topic">
<select name="number">
<option value="./menu.html">▼ 曲を選択してください。</option>
<option value="./music/00.mid">音楽00ファイル</option>
<option value="./music/01.mid">音楽01ファイル</option>
<option value="./music/02.mid">音楽02ファイル</option>
</select>
<input type="button" value="Start" onclick="window.parent.music_page.location=topic.number.options[topic.number.selectedIndex].value">
<input type="button" value="Stop" onclick="window.open('./menu.html','music_page','');">
</form>

1   名前: ネス家deチャチャチャ : 2006/05/21(日) 13:34
これは単にmidiファイルを呼び出しているだけのコードですね。
IEなんかだと、あのMediaPlayerとかいうのが出るんでしょうね。
ループはそこの再生ボタンを押すんでしょうね。

むしろ、クロスブラウザ的には、M$のbgsoundじゃなくembedでやって
ほしいです。そのときは、loop=infinitiveあたりで。

2   名前: F ◆31IwthomhZ : 2006/05/21(日) 13:34
 そもそもBGMはうかつに使うと問題が生じやすいので注意です。

参考)
http://lan.rgr.jp/essay/bgm
http://www2.plala.or.jp/Cool/okite/red01.html

 また、こと音楽に対しては著作権に注意する必要があります(作曲からデータ作成から全てご自分で行うのでない限り、著作権者に無断でデータ化することは問題とされます)。

参考)
http://www.jasrac.or.jp/

3   名前: ネス家deチャチャチャ : 2006/05/21(日) 13:34
著作権著作権といいますが、midi程度の音楽なら、ネットにフリーのが
それこそゴロゴロしてます。まず問題なく使えるでしょう。

むしろ、問題なのは、ユーザー無視でロードと同時に音楽が鳴り出し、
止めるボタンもないようなページですね。
以前「歎異抄」をいろいろ勉強していたとき、この不愉快なサイトに
遭遇した。音楽がうるさくて、歎異抄を深く味わうどころの話ではない。

http://www.geocities.co.jp/HeartLand-Himawari/4022/tanni/01.html

きれいな写真画像と音楽はえてして自己満足、それどころかいい迷惑で
もある。他山の石としたい。

4   名前: F ◆31IwthomhZ : 2006/05/21(日) 13:34
>>ネットにフリーのがそれこそゴロゴロしてます。まず問題なく使えるでしょう。
 それが「作曲からデータ作成から全てご自分で行われた」データで、「ご自由にお使いください」と提供されているのであれば問題はないです。そうでないものは問題ですよ。

>>むしろ、問題なのは、ユーザー無視でロードと同時に音楽が鳴り出し、止めるボタンもないようなページですね。
>>2で示した資料はそのことについてもちゃんと触れています。

5   名前: spk : 2006/05/21(日) 13:34  ID:0MnNcb8p
問題になっている二つの点に関して、利用上は解決させています。

>問題なのは、ユーザー無視でロードと同時に音楽が鳴り出し、止めるボタンもないようなページですね。
ボタンを押さないと再生されませんし、初期状態は「▼曲を選択して下さい」で、別フレームにHTMLを読み込ませているので、
間違ってボタンを押しても音楽はなりません。

>ネットにフリーのがそれこそゴロゴロしてます。まず問題なく使えるでしょう。
MIDI制作のサイトと提携していますので、問題はありません。

↑の再生ページは、JavaScriptで小窓を表示させ、そこで再生させるつもりです。

6   名前: F ◆31IwthomhZ : 2006/05/21(日) 13:34
>>4への自己レス。
「>>むしろ、問題なのは、ユーザー無視でロードと同時に音楽が鳴り出し、止めるボタンもないようなページですね。」については全く異論がないです。むしろ同感。
 回答などする際資料を探すために複数ウインドウを開くので、それらで別々のBGM流されるとたまったものではないです。

>>5
 Frameset文書型によるフレーム、JavaScriptについては下記資料も注意点としてご参考に(ご存知な資料だったらご容赦を)。
 あ、別窓はポップアップブロック機能で殺される可能性もありますね。

参考)
http://car.s35.xrea.com/better/frame.php
http://bakera.jp/html/opinion/zannen1.html
http://bakera.jp/html/opinion/zannen2.html

7   名前: spk : 2006/05/21(日) 13:34  ID:RM3AulTA
>>6
>むしろ、問題なのは、ユーザー無視でロードと同時に音楽が鳴り出し、止めるボタンもないようなページですね。
START・STOPボタンなので勝手に鳴り出すことも無いし、STOPボタンで止めることも可能な仕様にしています。
フレームに出力しますので複数ウィンドウが開くことはありません。自己ウィンドウを除いて。
他、問題点は解消されています。あとはループさせるだけなんですが。。。

8   名前: 神崎 : 2006/05/21(日) 13:34
No.1の後半以外は質問の主旨と違う方向に行ってるような気がしますが、、、?


一番簡単な方法は、各midiファイルを再生するhtmlファイルを1つずつ用意しておき、

<option value="./menu.html">▼ 曲を選択してください。</option>
<option value="./music/00.html">音楽00ファイル</option>

という形でhtmlファイルを指定、
セレクトフィールドが変更されたら、そのhtmlファイルを読み直すようにすると、
htmlファイルをそれぞれ作る必要がありますが、JavaScriptの変更はありませんし、
htmlの中で指定したループや音量なども調整出来ます。

Macの一部のブラウザは、<input type="submit">がなくてもフォームをエンターキーで送信できますので、

<form method="post" name="topic" action="menu.html" target="music_page" onsubmit="return false">

としておくと、selectフィールドでリターン(エンター)キーを押したときにフォームが送信されることはありません(JavaScriptが有効な場合)し、
もし送信された場合(JavaScriptが無効な場合)でも、menu.htmlが音楽用のフレームに表示される(音楽が停止する)だけになります。
(selectフィールドのエンターキーで送信されるかどうか忘れましたが、、、テキストフィールドなどではsubmitボタンがなくても送信されます)

1つずつhtmlファイルを用意したくない場合は、
<option>のvalueをmidiファイルにしておいて、

<input type="button" value="Start" onclick="var n=this.form.elements['number'];func(n.options[n.selectedIndex].value);">

function func(src){
var w=window.parent.music_page.document;
w.open();
w.write("<embed src='"+src+"' loop='true' repeat='ture' autostart='true' autoplay='true' controller='true' hidden='false' controlpanel='true' width='200' height='50' volume='100'>");
// 適宜修正して下さい
// できれば<html>から</html>まで全部書いた方がよいと思います。
w.close();
}

こんな感じでタグを書き出してやる必要があると思います。

9   名前: 神崎 : 2006/05/21(日) 13:34
あ、今(HTML4.01)は<embed>ではなくて<object>ですので、書き方はもうちょっとややこしく(?)なりますが、
基本的には同じですので、適宜HTMLの文法や目的とする環境に合うように調整して下さい。

10   名前: spk : 2006/05/21(日) 13:34  ID:2jIgJaM1
>神崎様
ありがとうございます。おかげで、無事ループ再生できました。
FireFoxでは動作確認できたのですが、IEだと「ActiveXコントロールを実行するにはクリックして下さい」
という警告が表示されてしまい、音楽を再生させる事が出来なくなってしまいました。

これを回避する事はできないのでしょうか?どなたか、宜しくお願いいたします。

11   名前: m035 ◆Wpzr1YKOiq : 2006/05/21(日) 13:34  [URL]  ID:4sI5lIih
>>10
IEの特許問題でそうなったはずです。
http://www.itmedia.co.jp/news/articles/0603/01/news029.html
対策としては下記(およびそのリンク先)が参考になるかと思います。
http://jsgt.org/mt/archives/01/000984.html

一覧へ戻る