« Swing入門以前 - Swingのスレッドポリシー(1) | トップページ | VistaにQuickTime7.3をインストールしたがやはり駄目だった »

2007/11/06

Javaでニコニコ動画風のプレイヤを作れるか

概要:Swingで動画に文字列をオーバレイ表示できるか試してみたところ、色々と制約があることがわかった。

デスクトップアプリを趣味で作るのであれば、やはりマルチメディアか、ということでJavaで動画再生するための方法を調べて見た。…どうも動画処理についてはあまり得意ではないらしい。

Run Anywhereなものを目指すのであれば、Flashを学んでFLVを扱ったほうが良いのではないかと思う。そうでないとしても、Managed DirectXを学ぶ、など他に有効な時間の使い方があるような気がする。

ともかく、Javaで動画再生であるが、検索ではJMFQuickTime for Javaがヒットしたが、今回はJMFを使用した。

 

以下調査結果。

動画(ビジュアルコンポーネント)の上に他のコンポーネントをかぶせる場合、ビジュアルコンポーネントがライトウェイトである必要があるらしい。また、上に被せようとしているコンポーネントもライトウェイトで無ければならない。これはヘビーウェイトコンポーネントは透明化できないという理由による。

つまり、ライトウェイトで作れば表題のようなことが実現できるかもしれない。

やっつけのサンプルコード。コード中、(1)の箇所は上に被せるコンポーネントをライトウェイト(JLabel)にするかヘビーウェイト(Label)にするかであり、(2)の箇所はビジュアルコンポーネントをライトウェイト(2つのsetHintで指定)とするか、ヘビーウェイト(デフォルトのまま)とするか、の指定である。

実行結果。双方ライトウェイトの場合は、期待した結果が得られた。

ビジュアルコンポーネントがヘビーウェイトだと、どうやってもテキストは前に来ない。

result02

参考:
http://forum.java.sun.com/thread.jspa?forumID=28&threadID=696564
http://forum.java.sun.com/thread.jspa?forumID=28&threadID=378404

|

« Swing入門以前 - Swingのスレッドポリシー(1) | トップページ | VistaにQuickTime7.3をインストールしたがやはり駄目だった »

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/18902/16991026

この記事へのトラックバック一覧です: Javaでニコニコ動画風のプレイヤを作れるか:

« Swing入門以前 - Swingのスレッドポリシー(1) | トップページ | VistaにQuickTime7.3をインストールしたがやはり駄目だった »