trustBee ロゴ  
  パソコンQ&A  
  OpenBBS  
  IMP日本語版  
  phpMyAdmin日本語版  
  Webツール  
  業務案内  
  業務実績  
  便利ツール満載! BeeTools
便利ツール満載!
BeeTools
 
  SOHOコミュニティ SIMPLE
SOHOコミュニティ
SIMPLE
 
   
  Illustrated by POPO  
 
PHPでSMIL

PHPでSMIL

SMIL(Synchronized Multimedia Integration Language)とは、画像や映像、音楽などを組み合わせて マルチメディアコンテンツを記述するための言語です。
PHPからSMILを出力できるのか、試してみました。

サンプル

クロスフェードで切り替わる2枚の写真、時間で変わるテキスト、及びRealAudio形式の音楽を使用しています。

下記のリンクをクリックして下さい。
サンプル (RealPlayer 8 for Linux にて確認)

使用した素材

画像1
画像2
RealAudio
(全てフリー素材を使用)

参考

SMILで作るストリーミングコンテンツ for Real Player 小泉 昌弘著 (感謝!)
映像であそぼ!!

ソース (smil.php)

一つのスクリプトでSMIL、RealPix(静止画像)、RealText(テキスト)を出力するために、 変数$modeで切り替えています。
SMIL出力部分は、ヘッダとして"Content-Type: application/smil"を出力しています。
また、SMILからRealPixなどを呼び出す部分では、"smil.php/dummy.rp?mode=rp"として、ダミーのファイル名を与えています。

<?php
/*********************
 PHP-SMIL sample
 smil.php
 (c) 2002 trustBee
 *********************/

switch ($mode) {
	// SMIL出力部分
	default:
		// ヘッダを出力
		header("Content-Type: application/smil");
?>
<smil>
  <head>
    <meta name="author" content="Isamu Yamamoto"/>
    <meta name="title" content="php-smil sample"/>
    <meta name="copyright" content="(c) 2002 trustBee"/>
    <meta name="base" content="http://www.trustbee.com/script/php-smil/"/>
    <layout>
      <root-layout height="250" width="256"/>
      <region id="img_reg" left="0" top="0" height="192" width="256"/>
      <region id="text_reg" left="0" top="200" height="40" width="256"/>
    </layout>
  </head>
  <body>
    <par>
      <img src="smil.php/dummy.rp?mode=rp" region="img_reg" fill="freeze"/>
      <textstream src="smil.php/dummy.rt?mode=rt" region="text_reg" fill="freeze"/>
      <audio src="wrapped.ra"/>
    </par>
  </body>
</smil>
<?
		break;

	// RealPix出力部分
	case "rp":
?>
<imfl>
<head author="Isamu Yamamoto"
timeformat="dd:hh:mm:ss.xyz"
duration="0:20"
bitrate="12000"
preroll="0:10"
width="256"
height="192"
aspect="true"/>
<image handle="1" name="http://www.trustbee.com/script/php-smil/namazu.jpg"/>
<image handle="2" name="http://www.trustbee.com/script/php-smil/iruka.jpg"/>
<fill start="0:00" color="black"/>
<fadein    start="0:02" duration="0:02" target="1"/>
<crossfade start="0:12" duration="0:02" target="2"/>
</imfl>
<?
		break;

	// RealText出力部分
	case "rt":
?>
<window type="generic" height="40" width="256" duration="25" bgcolor="black">
<font color="#8080ff">
<time begin="1"/>Hello, Mr. catfish!
<time begin="5"/><br/>Are you hungry?
<time begin="14"/><clear/>I want to swim with you!
</font>
</window>
<?
		break;
}
?>