再生/表示特化型UPnPブラウザ「ubrowser」を作りました

UPnPブラウザと言っても、ただ単にFirefoxのブラウザエンジン(XULRunner)を利用して作った表示アプリを、UPnPで操作制御できるようにしただけです。
それで何がしたかったと言うと、ブラウザ(FlashPlayer)の表示機能を使うことでJPEG/PNG/MP3/FLV/MP4を再生できるDLNA/UPnP互換(手抜きで作ってるので互換性はあまりないですが)の表示デバイス(DMR/MRD)にすることが出来るかなと思いました。

その(DMR/MRD)機能に追加して、一般的なWebのURLなども渡せるように作ってみました。この機能を使えばSlideSharePicasaYoutubeのようなコンテンツ共有Webサービスのページも表示させることが出来るのではないかと思いました。勿論UPnPの仕様ではブラウザ機能の制御方法なんて規定されてないので、「こうすりゃ良いんじゃないかな」って感じで適当に決めたんですけど(まだ全関数が動くわけじゃないですけど)。
もちろんUPnP機能を使わないとただのブラウザになるので、マウスとキーボードを使っても操作することは出来ます。(全画面化するうえでメニューバーとか消しちゃってるので操作し辛いと思います)

ダウンロード場所

ubrowser ver1.0
※現時点では使ってもらう事を考慮してないため、実行するまでかなり苦労する事になると思います。

推奨動作環境
  • 大画面TVに接続されているPC
  • PC環境
    • Ubuntu10.04(デスクトップ版、ソースや設定ファイルを弄れば他環境でも動くかも)
    • 以下のパッケージをaptでインストールしていること
      • xulrunner-dev
      • libupnp-dev
      • flashplugin-installer
      • libxml2-dev
      • libcurl-ssl-dev
      • libgtk2.0-dev

インストールすると/etcとかに配置されますが、実行だけならインストール不要でmakeコマンドでビルド後に

./upnpbrowser -r /home/user/ubrowser/

として起動する事ができます。

機能概要図

今のところこのソフトはGTK+の有効なデスクトップLinuxデーモンとして使用する事を想定しています。まだ開発が不完全なのでアプリ落ちる事も多いですけど。大まかな流れは↓のような感じです。

DLNA/UPnPサーバのコンテンツURLを渡すアプリはいくつかあるのですが、通常のインターネットURL(Youtubeなど)を渡せるようなコントローラは、今のところないです。今Firefoxのアドオンとして開発しようと思ってるのですが、僕自身JavaScriptに詳しいわけじゃないので開発が難航している状況です。現状では送りたいURLを表示中に右クリックで送信できるようなIFを考えています。(↓みたいな感じ)

このアドオンのゴールとしてはUPnPの機能で自動的にブラウザの命令を受けるポートを認識させたいのですが、アドオンだとJavaScriptで作る必要があり、実現が難しいです。JavaScriptに詳しい親切な方に作っていただけると助かるんですが。

今後のプログラムの発展方向
  • ダウンロード機能
    • 外部から「このURLでダウンロードしておいてよ」って命令を受けれるようにする
  • Twitter連動機能
    • TwitterのDMなどで再生/停止などの命令を出せるようにする
    • (即時に命令を受けれるわけじゃないので、レスポンス性能は遅そうですけど)
  • もっときめ細かな再生制御
    • 現状じゃブラウザの戻るとか、リロードとかそのレベルでしか制御できない

作業時間と改善のためのやる気が戻ったら、もう一度改善とかしてみようと思います。