今日は、午前中地域活動に参加してきました。この三日間は肉体労働3連ちゃんです。
畑仕事、嫁さんの姉家族の引越手伝い、そして用水路清掃作業・・・とちょっぴり筋肉痛。
しかし、ご近所さんともコミュニケーションがとれ、ご近所さんの意外な一面もわかって楽しかったです。
今回の本題は、その肉体労働3連ちゃんの合間に遊びでつくった(仕事せ〜よ!と言われそうですが)それが、前回のエントリ「aaa」です。
ポッドキャスティングをFlashで配信!のしくみです。(全2回)
これまで、このK1ファクトリーでも何度かポッドキャスティングをやってきましたが、MP3への直リンクで、Macなら画面が代わって、QuickTimeの画面が出て来てそっけない感じだったのがやっぱりイマイチだったんで、前々からFlashでMP3を読み込ませたほうが見栄えもええよなぁと思っとりました。でも、イマイチいいしくみが思いつかなくって、ポッドキャスティングするたびにMP3作るのだけでもちょい面倒なのに、MP3ごとにFlash編集するのはもっと面倒。なんかスマートじゃない。
でも、今回ちょっと思いついたので、やってみたらうまく出来ちゃいました。
考え方としては、ポッドキャスティングでブログのエントリーを作成する際に、Flash(事前にアップしてあるSWFファイル)を表示させ、エントリーの際に一緒にアップする音声データ(MP3ファイル)のファイル名をSWFファイルに送信、SWFファイルにMP3を外部ファイルで読み込み、再生させるというものです。
- MovableTypeのテンプレートを編集する
- MP3プレーヤーをFlashで作成する
今回は1.の「MovableTypeのテンプレートを編集する」をエントリーです。
このしくみで一番の問題は、MP3ファイル名をどう処理するか。ってことだったんですが、
ブログのエントリータイトル名をMP3ファイル名とすることにしました。(「タイトル」より「概要(MTEntryExcerpt)」にしたほうがいいかも。そうすれば好きなタイトル(日本語とか)つけれそう。)
そして、個別のエントリーアーカイブにFlashを表示させることにしました。
ただ、テンプレートを修正してFlashを表示させるのはいいんですが、ポッドキャスト以外のエントリーの際にはFlashを表示させる意味がないので、エントリーのカテゴリが「podcast」かどうか判別し、カテゴリが「podcast」の時だけFlashを表示させられないかな・・・
MovableType標準ではそのような機能はないんですが、MovableTypeには様々なフリーのプラグインがネット上にあります。そのうちの「Compare」というのを利用させていただきました。このプラグインはよくあるIF文を実現してくれるプラグイン。A = Bであれば・・・というもの。それでできたのが以下のかんじ。
<MTIfEqual a="[MTCategoryLabel]" b="podcast">
<div id="flash">
<h4><a xhref="http://www.k1factory.biz/blog/archives/<$MTEntryTitle$>.mp3">
<$MTEntryTitle$></a></h4>
</div>
<script language="javascript" xsrc="http://www.k1factory.biz/blog/flashobject.js" type="text/javascript"></script>
<script type="text/javascript">
var fo = new FlashObject("http://www.k1factory.biz/blog/archives/podcast.swf?podname=<$MTEntryTitle$>", "podcasting", "300", "80", "7", "#ffffff");
fo.write("flash");
</script>
</MTIfEqual>
※赤字が「Compare」によって追加されたMTタグ。カテゴリ名が「podcast」であれば・・・ということ。
※<MTIfEqual>タグの中身は、以前のエントリで紹介したFlash表示方法。MP3ファイルの指定に<$MTEntryTitle$>を使用。緑字部分がFlash(SWFファイル)の指定部分。podcast.swfの後ろに?podname=として変数とその値をSWFファイルに送信している。値はMP3ファイル名つまり<$MTEntryTitle$>(エントリータイトル)。
これで、「MovableTypeのテンプレートを編集する」は完了!次回は、「MP3プレーヤーをFlashで作成する」