BGMの停止・再生方法について。



0   名前: 倭月 : 2006/05/22(月) 20:41  ID:fuFxN7y2
まず、<head>〜</head>間に、

<bgsound src="***.mid" loop="infinite" balance="0" volume="0">

を挿入し、ページを開いた時から自動でBGMが流れるようにしました。
このときに、閲覧者の意思でBGMを停止・再生が出来るように<body>〜</body>間に、

<a href="javascript:document.***.mid.Play();">再生</a>
<a href="javascript:document.***.mid.Stop();">停止</a>

と記載しました。
すると、停止はキチンと反応するのに再生は機能しませんでした。
再生をキチンと反応させるにはどうすればいいでしょうか?

どなたかご教授お願いします。

1   名前: F ◆31IwthomhZ : 2006/05/22(月) 20:41
 こちらのスレッドの>>8が参考になるかもしれません。

http://www.tagindex.com/cgi-lib/q4bbs/patio.cgi?mode=view&no=437

 なお、BGSOUND要素というものは公式仕様にはありません。

参考)
http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/index/elements.html
http://www.w3.org/TR/html401/index/elements.html

 BGSOUND要素を最初から自動再生のために使っているからかもしれませんが、そもそも公式仕様でないのでうまくいかないのかもしれません。
「ページを開いた時にBGSOUND要素でいきなり流す」のを外してみても「再生は機能しません」か?

2   名前: itoben : 2006/05/22(月) 20:41  ID:kSqTYqIX
下記ページの「あっと驚くJavaScript」→「時間・サウンド」にあります。
http://www1.plala.or.jp/itoben/index.html

3   名前: Pid ◆byEkK9OALr : 2006/05/22(月) 20:41
>>2
大変失礼ながら,そこのサンプルはおススメできません。


>>0
> 閲覧者の意思でBGMを停止・再生が出来るように

ということならば,JavaScript を使ってはいけません(非スクリプト環境で制御できなくなるからです)。コントロールパネルを表示させましょう。

どうしても JavaScript が必要なら,利用者側のプラグインの有無・種類・バージョンの判定を行い,それに応じてメソッドを変更する必要があります。

もしくは,いっそ innerHTML で embed 要素を消去・作成という力技もありますが,負荷は高めです。

4   名前: 倭月 : 2006/05/22(月) 20:41  ID:fuFxN7y2
>Fさん、itobenさん
ありがとうございます。
ですが、やはりbgsoundを使用した上でのJavaScriptは機能しませんでした。

>Pidさん
コントロールパネルは、自作のHPのイメージに合わないので外すつもりでしたが、この方法が一番利用者側への負荷が少ないとの事ですので、これからはコントロールパネルを表記させ、HPのデザインを考慮することにします。


皆さん、ご返答ありがとうございました。

5   名前: 匿名 : 2006/05/22(月) 20:41  ID:Iz2k4TNT
結論が出ている所すみませんが、最近コントロールパネルを使用しない方法で
閲覧者にON/OFF選ばせるというのをテンプレ配布サイトさんの掲示板で見かけましたので、
その掲示板のURL載せておきます。
JavaScriptではないですが、一つの方法として面白いなと思ったので。
(URLのページに見当たらなければ下部のOLDで過去記事を閲覧してみてください。)
http://jam.boy.jp/mona_b_@@55/apeboard_plus.cgi?command=read_message&msgnum=10

こちらが実際にその方法で作られているページです。
http://mo-na2.com/@x@.htm

6   名前: F ◆31IwthomhZ : 2006/05/22(月) 20:41
>>5
 確認してみたところ、

1)ONについては、AREA要素内でBGMをEMBED要素で設定してあるHTMLを参照させる。
2)OFFについては、AREA要素内でBGMを設定していない別のHTMLを参照させる。

というものでしたが、「私の」環境ではBGMをONするアンカーをつついてもBGMが鳴りませんでした(>>3でPid氏がおっしゃる「非スクリプト環境で制御」できず、かつ背景画像で「コントロールパネルを表示」させないやり方に思えますが)。

一覧へ戻る