人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

html上でからwmvを読み込ませる為にasxで現在下記のように書いているのですが、
これですとリロードする度に同じ順番でwmvが読み込まれてしまいました。

読み込む度にランダムで再生をして、一つ目のwmvの再生が終わったら
別の新しいwmvが再生される方法ってありますでしょうか?

Javascriptを使えば出来たりしますか?

教えてください!

<embed name="WMP" type="application/x-mplayer2" pluginspage="?http://www.microsoft.com/Windows/MediaPlayer/"?
src="movie.asx" width="432" height="324" autostart="1" loop="true" showcontrols="0"></embed>

▽movie.asxの中身デス▽
<asx version="3.0">
<entry>
<ref href="01.wmv"/>
</entry>
<entry>
<ref href="02.wmv"/>
</entry>
<entry>
<ref href="03.wmv"/>
</entry>
</asx>

●質問者: tuka312
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:432 application asx HTML JavaScript
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ingot07
●27ポイント
<script type="text/javascript">

<!--
var rand = Math.floor(Math.random()*3)+1;


switch(rand){
 case 1:
 var movie = '<embed src="01.wmv">';
 break;
 case 2:
 var movie = '<embed src="02.wmv">';
 break;
 case 3:
 var movie = '<embed src="03.wmv">';
 break;
 default:
 var movie = '読み込みに失敗しました';
}

document.write(movie);

//-->
</script>




即席で組んでみました。

asxファイルを使用したことがないもので、勝手ながらページに直接リンクを貼り付けてます。

body部に貼り付ければ、動くと思います。

と言いながら、ファイルがないので検証すら出来ないのが申し訳ないところですが…


ざっくり説明すると、ランダムで1~3の数字を呼び出して、下のswitch文でランダムな数字に応じて、リンク情報を文字列としてhtmlに出力しているだけです。

JavaScriptを知らなくても、ファイル数を増やすぐらいなら出来ると思いますが、詳しく知りたければ勉強することをオススメします。


htmlで動画を扱ったことがないので、再生終了後に別のファイルを再生、という操作は分かりません。

なんか出来ないことだらけど、ほんとスミマセン。

◎質問者からの返答

有り難うございます。

読み込む度にランダムで選ばれますが一度再生が終わると

次が再生されないのでもう少し調べてみます!


2 ● hamster078
●27ポイント

http://oshiete1.goo.ne.jp/qa3469640.html

http://www.microsoft.com/japan/windows/windowsmedia/knowledgecen...

◎質問者からの返答

普通にWindowsMediaPlayer上で再生なら上記URLの様にリストを制作して

そのリストをランダムで再生させるで大丈夫なのですが、

プレイヤーは立ち上げず、html上で別のデザインの上にのせる形になってるので申し訳ないですが、

ちょっと内容がずれてました…


3 ● GEN111
●26ポイント

あまり自信ないですが。一応手元の IE6 では動いてます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 <script type="text/javascript">
 var movieList = ['01.wmv', '02.wmv', '03.wmv'] ;
 var currentMovie = 0 ;

 Array.prototype.shuffle = function() {
 for (var i = this.length, p; i > 0; --i) {
 this.push(this[p = Math.floor(Math.random()*i)]) ;
 this[p] = this[i-1] ;
 this[i-1] = this.pop() ;
 }
 return this ;
 }

 onload = function() {
 movieList.shuffle() ;
 document.getElementById('WMP').FileName = movieList[0] ;
 }
 </script>
 </head>

 <body>
 <embed name="WMP" id="WMP" type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
 width="432" height="324" showcontrols="0"></embed>
 <script for="WMP" type="text/javascript" event="PlayStateChange(lOldState, lNewState)">
 if (lOldState == 3 &amp;&amp; lNewState == 0) {
 if (++currentMovie >= movieList.length) currentMovie = 0 ;
 setTimeout(function() {document.getElementById('wmp').FileName = movieList[currentMovie] ;}, 0) ;
 }
 </script>
 </body>
</html>
◎質問者からの返答

わざわざソースまで書いて頂き有り難うございます。

やはり次が再生されないので動画再生が終わったらページをリロードをすると云う方法で書き加えてみました。

<script for="movie" event="EndOfStream(lResult)" type="text/javascript"></p> <p><!--</p> <p>window.location.reload([true]);</p> <p>// --></p> <p></script>

本当は終了を確認したらもう一度ランダム再生させる為のscriptを読み込ませたかったのですが

初心者だったのでこれが限界でした。

有り難う御座います

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ