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>

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/11/04 22:00:05
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:ingot07 No.1

回答回数11ベストアンサー獲得回数0

ポイント27pt
<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で動画を扱ったことがないので、再生終了後に別のファイルを再生、という操作は分かりません。

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

id:tuka312

有り難うございます。

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

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

2007/10/29 17:50:25
id:hamster078 No.2

回答回数587ベストアンサー獲得回数4

id:tuka312

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

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

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

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

2007/10/30 10:03:30
id:GEN111 No.3

回答回数472ベストアンサー獲得回数58

ポイント26pt

あまり自信ないですが。一応手元の 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>
id:tuka312

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

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

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

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

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

有り難う御座います

2007/10/30 10:03:34

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません