« NetBeansはどうやってjava.exeを探すのか | トップページ | 丸型蛍光灯を交換した »

2008/12/23

JavaFXでmp4/swfを再生してみた

firefoxのあまりにも遅い動作、特に初回起動時の遅さに耐えかねて、メインブラウザをGoogle Chromeに変更した。タブやウィンドウがそれぞれ別プロセスで動作するので、JavaFXのページやAppletのページを開いたときでも、別タブ/ウィンドウでは固まることなく閲覧できる。ちなみにIEは処理が重くなると確認ダイアログが出て、ダイアログの質問に答えない限り、処理負荷が低減しても復帰しないので困る。

Google Chromeのデメリットとしては、おそらく別プロセスで動作するためメモリの消費が他と比べて大きいこと、が挙げられると思う。ただ、私の環境では積載メモリに対する通常動作時の消費メモリが大分小さいため、これが問題になることは今のところ全く無い。

閑話休題。

ffdshowというものがどういう仕組みで動作しているのかさっぱり知らないのだが、とにかくffdshowを噛ますことでmp4だろうがswfだろうが再生できることを確認した。

Wikipediaの記述を見ると、DirectShowフィルタという説明が為されているので、Windows専用の仕組みなのだろう。

スターとメニューから辿れる、ffdshowの「ビデオデコーダの設定」を選択すると、下に示したダイアログが表示される。ここで「未知のアプリケーションがffdshowをロードしようとした時ダイアログを表示する」にチェックを入れておく(おそらくデフォルトでチェックは入っているだろうが)。

directshow01 (クリックで拡大)

その後、JavaFXのプログラムで動画を再生しようとすると、下に示したダイアログ「ffdshow互換性管理プログラム」が表示される。

directshow02 (クリックで拡大)

いちいち選択するのが面倒であれば、「ffdshowを使用する(記憶する)。」を選んでおけば良いのではないだろうか。

ここで「記憶する」を選択した場合、1つ目に示したダイアログ中の「以下ではffdshowを使用しない」、あるいは「以下でのみffdshowを使用する」にjava.exeが設定される。ここからjava.exeを削除すると、次回起動時には再度2つめのダイアログが表示されることになる。

今回使用した、JavaFXでの動作再生プログラムのサンプルはこちら

 

import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.scene.Scene;
import javafx.stage.Stage;

var media = Media {
    source: "file:/C:/test.flv";
};
println("SIZE: {media.width} x {media.height}");

var player = MediaPlayer {
    media: media
    autoPlay: true
};

var stage:Stage = Stage {
    onClose: function() {
        java.lang.System.exit( 0 );
    }

    title: "Media Player";
    visible: true;
    width: media.width
    height: media.height
    scene: Scene {
        fill: Color.BLACK
        content: [
            MediaView {
                mediaPlayer: player
            }
        ]
    }
}

« NetBeansはどうやってjava.exeを探すのか | トップページ | 丸型蛍光灯を交換した »

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: JavaFXでmp4/swfを再生してみた:

« NetBeansはどうやってjava.exeを探すのか | トップページ | 丸型蛍光灯を交換した »

other sites

  • follow us in feedly
  • github
  • stackoverflow

ソフトウェアエンジニアとして影響を受けた書籍

  • Christain Bauer: HIBERNATE イン アクション

    Christain Bauer: HIBERNATE イン アクション
    理論と実践が双方とも素晴らしい製品であるHibernate。本書はそのプロダクトを書名に冠していますが、Hibernateを使うつもりがなく、ORマッピングの解説書として読むにしても十分な良書です。Second EditionとしてJava Persistence With Hibernateという書籍も出版されていますが、残念ながら現在のところ 和訳はされていません。-インアクションは2.xの、Java Persistence-は3.1の頃のものなので、最新版とはちょっと違うところもあることに注意。 (★★★★★)

  • アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版

    アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版
    クライアント/サーバシステムを構築する上で必要となる知識が総論されてます。Web技術者も、フレームワーク部分を開発するのであれば必読。 (★★★★★)

  • Joel Spolsky∥著: ジョエル・オン・ソフトウェア

    Joel Spolsky∥著: ジョエル・オン・ソフトウェア
    前述の書籍「ソフトウエア開発プロフェッショナル」をより砕いたもの、という感じでしょうか。 前書きではプログラマでなくSE向けの本のように書かれているが、プログラマが読んでも面白い本であると思われます。 SEになった新人(あるいはそういう会社に入る/入りたての人)にとっては、これからどういったことが仕事を遂行していく上で起こりえるのか、どのように考えて行なっていけばいいのか決定する助けになると思います。 元は″Joel on Software″というブログの記事で、web上でも一部日本語で読めます。 http://japanese.joelonsoftware.com/ (★★★)

  • ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか

    ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか
    問題解決(一昔前のの流行語で言うところの『ソリューション』)能力は、システムエンジニアのスキルとして備えるべきもののうちのひとつです。しかし、これは難しい。学校で出されるテストと違い、唯一の、(問題提出者が想定している)解を求めるだけが「問題解決」では無いからです。そもそも、何が問題なのか、それは本当に問題なのか、それは本当に解決すべき問題なのか、その問題解決方法は正しいのか、などを解決しなければ、「その解は正しいのか」に辿りつくことができません。この本の最も良いところのひとつは、本があまり厚くないこと。すぐに読めるし、何回も読み返す気になるでしょう。 (★★★★★)

  • スティーブ・マコネル: ソフトウエア開発プロフェッショナル

    スティーブ・マコネル: ソフトウエア開発プロフェッショナル
    コードコンプリートで有名なスティーブマコネルの著書。新人SEに読んで欲しい。個人として業界の中でどうあるべきか、組織としてどうあるべきか、SEのプロ意識とは?SEの心構え概論、といったところでしょうか。また、業界における資格の重要性についても説かれています。この業界では資格が特に軽んじられる傾向がありますが、この傾向はどんな弊害をもたらすのか、将来的にこの業界は資格に対してどのような姿勢で臨んでいくべきなのか。日経BP社では(他の出版社もだが)最近、似たような類いのあまり面白くない書籍が乱出版されていますが、この本は別格だと思うので安心して購入して欲しいと思います。 (★★★★★)

無料ブログはココログ