ひとつ前のエントリーで書きましたが、記法は簡単です。次のようになります。
[yt:(ビデオのID):横幅:縦幅]
YouTubeなら、
yt、Googleビデオなら
gv、マイクロソフトsoapboxなら
sbです。縦と横のサイズ(整数)は省略できるので、簡単にしたいなら、ビデオのIDを記述するだけでOKです。具体例で見ていきましょう。
[yt:hEYHvLnVcnQ::]
と記述すると(任天堂ゼルダ曲のピアノ演奏、
再生すると音が出ますよ)、
次は、GoogleVideoの場合。
[gv:-5379890076544103730::]
と記述すると(任天堂マリオ曲のピアノ演奏)、[gv:-5379890076544103730::]最後に、マイクロソフトのSoapbox。
[sb:022cb97f-95f8-403a-9c1b-5032c70de2e1::]
と記述すると(任天堂Wiiのゼルダデモ映像)[sb:022cb97f-95f8-403a-9c1b-5032c70de2e1::]
こんな感じです。簡単ですね。この記法のために、スタイルシート用ですが video-linkというクラス名を出力するようにしました。このbasicのテーマの場合は、basic.cssにて次のように指定しています。
/*--------------[ 外部動画 ]-------------*/
.video-link {
width: 425px; margin: auto; z-index:1;
}
とりあえず、代表的な3つのビデオサイト向け記法を用意しましたが、utils.phpのソースを見れば分かるように、今後いくらでも追加できるようにしています。この手のは、たいていFlashを用いていますから。ちなみに、utils.phpの該当部分は以下のようになっています。配列なので、FLASH系なら、いくらでも追加できると思います。
// 外部動画リンク表示処理 (YouTube, Google Video, SoapBox MSN, and so on...)
if(preg_match_all('{¥[(yt|gv|sb):([0-9a-z¥-]+?):(¥d+?|):(¥d+?|)¥]}i', $com, $movlinks)){
$length = count($movlinks[0]);
$embeds = array( # src, type, others, width/height
'yt' => array('http://www.youtube.com/v/', 'application/x-shockwave-flash', '', '425,350'),
'gv' => array('http://video.google.com/googleplayer.swf?docId=', 'application/x-shockwave-flash', 'id="VideoPlayback"', '400,300'),
'sb' => array('http://images.soapbox.msn.com/flash/soapbox1_1.swf?v=', 'application/x-shockwave-flash', 'wmode="transparent" name="msn_soapbox" flashvars="c=v&v=SB_MOV_ID"', '412,362'), //
);
for($i=0; $i<$length; $i++){
$_mv = NL.'<div class="video-link">'.NL;
$tar = $embeds[$movlinks[1][$i]];
list($def_w, $def_h) = explode(',', $tar[3]);
$w = $movlinks[3][$i]=='' ? $def_w : $movlinks[3][$i];
$h = ($h=$movlinks[4][$i])=='' ? ($movlinks[3][$i]=='' ? $def_h : ceil($w * .75)) : $h;
$_mv .= ' <object style="width:'.$w.'px; height:'.$h.'px;">
<param name="movie" value="'.$tar[0].$movlinks[2][$i].'"></param>
<embed src="'.$tar[0].$movlinks[2][$i].'" type="'.$tar[1].'" '.str_replace('SB_MOV_ID', $movlinks[2][$i], $tar[2]).' width="'.$w.'" height="'.$h.'"></embed>
</object>';
$_mv .= NL.'</div>'.NL;
$com = str_replace($movlinks[0][$i], $_mv, $com);
}
}
Comments