アルツの備忘録

最近、年のせいで物忘れが激しい。
そこで、いろんなことをここに記録して行きたいと思います。

LiFE with PhotoCinema の複数コンテンツを自動再生

2010年04月17日 11時56分44秒 | JavaScript
LiFE with PhotoCinema の複数コンテンツを自動再生する。

フォトシネマのHTML形式で出力した、複数のコンテンツを自動的に連続再生する仕組み。
4~5年前にあるイベントで、いろいろなフォトシネマを再生する必要があり作った。
LiFE with PhotoCinema3で連続再生の機能が付いた様なことが書いてありましたが・・・・

<特徴>
 ・HTML形式の出力だと画面が小さいので拡大する。(表示サイズ指定可能)
 ・再生時間を指定できる。
 ・再生の可否を指定できる。
 ・再生回数を指定できる。
 ・再生スタート位置を指定できる。
 ・PhotoCinemaでなくても再生可能 (.mpg などMediaPlayerで再生できるもの)
 ・複数のコンテンツを、順次再生かランダム再生の指定が可能

<作成手順>
 ・自動再生用のフォルダを作り、後述のindex.html、Show_data.js を置く
 ・PhotoCinemaでHTML形式で自動再生用のフォルダへ出力する。
   ※但し、必要なものは、DswMediaのフォルダのみ
 ・出力したフォルダの(DswMedia/cinemaFile)画像を1024x768程度のものに置き換える。
   ※自分環境にあったサイズにする
 ・出来れば、DswMedia内のplayerAPI.dll.cctをLiFE with PhotoCinema1のものと置き換える。
   ※2のものは再生の初期設定が繰り返し再生になっていない為。
    入れ替えるだけで特に問題なく連続再生できる。
 ・Show_data.jsのShow_src へDswMedia/loader.dcrのパス、Show_timeへ再生時間(秒)を保守する。

<Show_data.jsの保守方法>
  var Show_src = new Array(“パス1,“パス2”,“パス3”)
  var Show_time = new Array(500,350,400 )

  ※パスの位置と再生時間の位置を合わせる。

 ・index.htmlを実行する。
   ※再生で応答を求められる場合は、
     IEのインターネットオプション → 詳細設定 の中のセキュリティ
      マイコンピュータでのCDのアクティブコンテンツを実行を許可する。
      マイコンピュータのファイルでのアクティブコンテンツを実行を許可する。
     にチェックを付けて、IEを再起動する。

  

 <再生状態>


■サンプル再生
 フォトシネマについていたサンプルで作成、再生時間は60秒に設定。
 写真を入れ替えてないんで、画像が荒い。
 ポップアップブロックを解除しないと、連続再生は出来ない。
 Adobe Shockwave Player のインストールが必要。
サンプル再生こちら

■Show_data.js 設定例
<!--
// Show データ
// 画面サイズ(1:1.333 240:320 600:800  720:960)
var Tate_size = 720;
var Yoko_size = 960;

// Show_chg = 再生方法 0:順次 1:ランダム
// Max_show = コンテンツ対象数
// Show_src = 対象データのパスを指定
// Show_time = 対象データの実行時間を指定(秒指定)
var Show_chg = 0;
var Show_loop = 99;
var Show_max = 3;
var Show_src = new Array(
  "TEST1/DswMedia/loader.dcr",
  "TEST2/DswMedia/loader.dcr",
  "TEST3/DswMedia/loader.dcr"
);

var Show_time = new Array(
202,
150,
179
);
//-->


■index.htmlのコード
 ・無料のホームページなどにアップして実行する場合、
  コードを作成する部分で body の中にメッセージが書き込まれる為エラーとなる
  このため、htmlを作成部分で body の文字を分割している。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>フォトシネマ 自動処理</title>

<!-- Show データ読み込み -->
<script type="text/javascript" src ="Show_data.js" ></script>

<script type="text/javascript"><!-- 

//window.resizeTo(300,300);
var timer;
var swin;
var i = -1;
var ix = -1;
var Show_maxw = 0;
Show_srcw=new Array(Show_max);
Show_timew=new Array(Show_max);
var max_loop = Show_loop * Show_max;

function Show_Main(Show_Src,Mtime){
    swin = window.open("","sicWin","fullscreen=yes");
    swin.document.open();
    swin.document.write(
	"<head>",
	"<meta http-equiv='Content-Type' content='text/html; charset=shift_jis'> ",
	"<meta http-equiv='Content-Script-Type' content='text/javascript'> ",
	"<script type='text/javascript'> ",
	"function Stop_loop(){",
        "if (opener.setTimeout) opener.clearTimeout(opener.timer); ",
        "window.close();",
        "    } ",     
	"</script> ",
	"</head> ",
	"<",
	"bo",
	"dy bgcolor='#000000' style='overflow:hidden' ",
	">",
	"<center> ",
	"<table cellpadding='10' cellspacing='0' border='0'> ",
	"  <tr bgcolor='#000000'> ",
	"   <td>"
        );

if (Show_Src.indexOf(".dcr")>0) {  
    //フォトシネの処理
    swin.document.write(
	" <object classid='clsid:166B1BCA-3F9C-11CF-8075-444553540000' ",
                "codebase='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,0,0' ",
                "id=playerLib.cat width='"+ Yoko_size +"' height='"+ Tate_size +"'> ",
	"        <param name=src value='"+ Show_Src +"'> ",
	"        <param name=swStretchStyle value=stage>",
	"        <param name=swRemote value='swSaveEnabled='true' swVolume='true' ",
                  "swRestart='true' swPausePlay='true' swFastForward='true''> ",
	"        <param name=bgColor value='#000000'> ",
	"        <param name=swStretchHAlign value=Left> ",
	"        <param name=swStretchVAlign value=Top> ",
	"      <embed src='"+ Show_Src +"' bgcolor='#000000' swstretchhalign=Left ",
                  "swstretchvalign=Top width='"+ Yoko_size +"' height='"+ Tate_size +"' ",
                  "swremote='swSaveEnabled='true' ",
                  "swVolume='true' swRestart='true' swPausePlay='true' ",
                  "swFastForward='true'' swstretchstyle=stage type='application/x-director' ",
                  "pluginspage='http://www.digitalstage.net/go/life2/lifeToSw.html'> ",
	"      </embed> ",
	"   </object> "
        );
   }else{
     //フォトシネ以外の処理(MediaPlayerの設定)
     swin.document.write(
       "<object ID='MediaPlayer1'",
           "classid='CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95' ",
           "CODEBASE='http://activex.microsoft.com/activex/ ",
           "controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715' ",
           "standby='Loading MicrosoftR WindowsR Media Player components...'  ",
           "width='"+ Yoko_size +"' height='"+ Tate_size +"' ",
           "type='application/x-oleobject'> ",
           "<param name='AutoStart' VALUE='true'> ",
           "<param name='FileName' value='"+ Show_Src +"'> ",
           "<param name='ShowControls' VALUE='false'> ",
           "<param name='Loop' VALUE='true'> ",
         "<embed type='application/x-mplayer2' ", 
           "pluginspage='http://www.microsoft.com/Windows/MediaPlayer/' ",
           "src='"+ Show_Src +"' width='"+ Yoko_size +"' height='"+ Tate_size +"' ",
           "autostart='true' showcontrols='false' Loop='true'> ",
         "</embed> ",
       "</object> "
        );
   }

 swin.document.write(
	"   </td> ",
	"  </tr> ",
	"</table> ",
        "<a href='javascript:Stop_loop();'>●▲■</a>",
	"</",
        "bo",
        "dy",
        ">"
      );
    swin.document.close();
    swin.focus();
    Start_Timer();
}

// タイマー開始処理
function Start_Timer(){
	if (setTimeout) { clearTimeout(timer);}
	timer = setTimeout('Stop_Show()',Mtime);
}

// 停止&実行処理
function Stop_Show(){
	if (setTimeout){ clearTimeout(timer);}
	if (swin && !swin.closed){ swin.close();}

	Start_Show()

}

// 開始処理
function Start_Show(){
	// 画像NO セット処理
        if (Show_chg == 0) {
           // 画像NO 順次指定 
           if (i >= Show_maxw - 1) {
                i = 0
              } else {
                i = i + 1;
              }
          } else {
  	       // 画像NOランダム指定 
	       // i==ix 同じNOを連続させない
               while(i==ix){i = Math.floor(Math.random()*Show_maxw);}
               ix=i;
          }

	Src=Show_srcw[i];
	Mtime=Show_timew[i]*1000;

        max_loop=max_loop-1
	if (max_loop>=0){
            Show_Main(Src,Mtime);
         }
}

function Show_set(data){
 St_j=-1
 if (data=="ALL"){
    var jx=0;
    for (var j=0; j < Show_max ; j++) {
     // 対象データ選択
     if (form1["chk"+j].checked){
       Show_srcw[jx]=form1["path"+j].value;       
       Show_timew[jx]=form1["time"+j].value;
       //スタートNOを得る
       if (form1.radio1[j].checked){
           St_j=jx-1;
        }
       jx=jx+1;      
      }
    }
    
    Show_maxw = jx
    i = St_j;
    ix = -1; 
    Show_loop=form1.Loop.value;
    max_loop = Show_loop * jx;
    
  }else{
    max_loop=1;
    i = -1;
    ix = -1;
    Show_srcw[0]=form1["path"+data].value;
    Show_timew[0]=form1["time"+data].value;
  }
  
  Start_Show();
  
}
//!-->
</script>
</head>

<body>
<script type="text/javascript"><!-- 
   document.write(
     "<form name='form1'>",
     "  <center>",
     "<input type='text' name='Loop' size='3' value="+Show_loop+"> </td>",
     "<input type='button' name='ALL' value=' ALL ' onclick='Show_set(this.name);'>",
     "</center>",
     "<table border='1' align='center' >"
     );
//Showリスト作成
 for (var j=0; j < Show_max ; j++) {   
   if (j==0){
         document.write("<tr><td><input type='radio' name='radio1' checked></td>");
      }else{
         document.write("<tr><td><input type='radio' name='radio1'></td>");
   }  
   document.write(
     "<td><input type='checkbox' name='chk" + j + "' checked></td>",
     "<td><input type='text' name='path" + j + "' size='50' value="+Show_src[j]+"></td>",
     "<td><input type='text' name='time" + j + "' size='5' value="+Show_time[j]+"></td>",
     "<td><input type='button' name='start" + j + "' value='Start' onclick='Show_set(" + j + ");'></td>",
     "</tr>"
      ); 
  }

//!-->
</script>

</table> 
</form><br><br>

<noscript>
JavaScriptが使用できるブラウザが必要です。
</noscript>
</body>
</html>


最新の画像もっと見る

コメントを投稿