2004年06月06日 (日)

外部音声ファイルを QuickTime オブジェクトにするプラグイン

必要に迫られて新しい iblogPatcher プラグインを作りました。外部音声ファイルの URL を QuickTime オブジェクトの HTML に変換するプラグインです。iblogPatcher-1.2.X でも使用できます。

iBlog では QuickTime で再生できる音声ファイルを簡単に QuickTime オブジェクトとして表示することができます。この操作が簡単なのが一つの特徴になっています。

プラグインの目的

しかしこれはあくまで音声ファイルをブログの Web スペース内にコピーして使用するものです。外部に置いた音声ファイルを同じような外観で使用するためには自分で object タグを使って書かなければなりません。そこで URL と少しの記号をエントリに書いておくとその部分を object タグに変換してくれるプラグイン QuickTimeObject.plugin を作成しました。

使用例

例によって iblogPatcher のデモンストレーションサイトでもある「僕は見ていた」の「今月の音楽」カテゴリを御覧下さい。このように外部のサイトにある楽曲ファイルを QuickTime オブジェクトで表示することができます。

これはラジログにも使用できます。さあ、iDisk の容量がひっ迫しているから外部にファイルを置きたいけれどどうタグを打ったら良いかわからないと言って尻込みしていた方、そうあなた。もうそんな言い訳は通用しませんよ。自分の声が嫌いと言っている方。自分の声が恥ずかしく聞こえるのは自分だけですよ。他の人は皆録音した声と同じような声を聞いているんです。恥ずかしくなんかありません。

設置方法

  1. プラグインのダウンロード
    上記のリンクからプラグインをダウンロードして、ホームから
    Library > Application Support > iblogPatcher > Library > plugin
    と辿って開いたフォルダーに保存してください。
  2. blog 定義ファイルの更新
    blog 定義ファイルの
    ACTION > preview > after > onstart
    の処理の中に次を加えます。 # QuickTimeObject を有効にする QuickTimeObject::OnStart(@_); 加える場所は blog 定義ファイルのサンプルファイル sample の最新版を参考にしてください。

使用方法

まず外部の音声ファイルの URI を確認してください。その URL は正確に仕様に則っていなければなりません。つまりスペースなどの記号類はきちんと URL エンコード(%-エスケープ) しておく必要があります。URI は相対 URI ではなく絶対 URI にしてください。つまり http:// で始まる書き方です。

そしてエントリを書くときに QuickTime オブジェクトにしたいところを次のようにします。

音声ファイルの絶対 URI
こう書いておくと、iblogPatcher で preview after をすると次のような XHTML に変換されます。
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="160" height="16" codebase="http://www.apple.com/qtactivex/qtplugin.cab"> <param name="SRC" value="音声ファイルの絶対 URI" /> <param name="AUTOPLAY" value="false" /> <param name="CONTROLLER" value="true" /> < a href="音声ファイルの絶対 URI" target="NewWindow">Media File</a> </object> ※ a タグの前のスペースは実際にはありません

もう一つバリエーションがあります。

音声ファイルの絶対 URI補助サイトの URI
このように二つ URI を記述すると次のように変換されます。
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" width="160" height="16" codebase="http://www.apple.com/qtactivex/qtplugin.cab"> <param name="SRC" value="音声ファイルの絶対 URI" /> <param name="AUTOPLAY" value="false" /> <param name="CONTROLLER" value="true" /> < a href="補助サイトの URI" target="NewWindow">補助サイトでお聞き下さい</a> </object> ※ a タグの前のスペースは実際にはありません
「僕は見ていた」の「今月の音楽」ではこちらを使用しています。

プラグインのカスタマイズ紹介

詳しくは述べませんが、このプラグインは次のカスタマイズ項目があります。
  • 後者の書き方で QuickTime Object をサポートしていないブラウザのときの文言
    デフォルトでは「補助サイトでお聞き下さい」という文言で指定した URI へのリンクが示されます。これを変えることができます。($Conf{'noobject'})
  • a タグの target 属性
    両方の書き方で、ブラウザがオブジェクトをサポートしてないときに a タグを利用したリンク(前者の書き方はメディアファイルへのリンク、後者は指定した補助サイトへのリンク)が表示されるようになっていますが、その a タグの target 属性の値を指定できます。($Conf{'target'})
  • 前置、区切り、後置フレーズ(正規表現)
    デフォルトでは音声ファイルの URI を識別するためあるいは、補助サイトの URI と区切るために「♪」を使用します。これを変更することができます。($Conf{'prefix'}, $Conf{'demilita'}, $Conf{'postfix'})
  • 対象とする URI の種類
    デフォルトでは絶対 URI のみが上の前置、区切り、後置フレーズで囲まれて記述してる箇所のみが適用されます。これを相対 URI、あるいはその両方に変更することができます。($Conf{'uri'})
プラグインファイルをエディタで編集してカスタマイズしてもよいですし(どのブログにも共通してカスタマイズ結果を反映させる場合)、ブログ定義ファイルに書いてもよいです(個別にカスタマイズする場合)。

必要があってやってみようとしたけれど、どのようにカスタマイズしたらよいかがよくわからなかったらリクエストをください。カスタマイズ方法をエントリにします。


iblogPatcher-1.2.X で使用する場合は上のカスタマイズ項目のデフォルト値が UTF-8 の文字列になっているところを Shift_JIS または実体参照に置き換えてください。

Posted: 08:56    | Comment | Trackback


以下、類似エントリです。