3

私は多くのビデオファイルを持っています。すべてのタイプが異なります (mkv、avi、mp4、flv など)。これらのファイルを反復して、映画の長さを取得したいと思います。

現在、問題のない vlcj を使用していますが、コードが少しわかりにくいです。長さを取得する前に、メディアを再生する必要があります。その後、メディアを停止します。これは奇妙ですね。

どういうわけかそれをもっとうまくやることができますか?xuggler について聞いたことがありますが、開発は停止しています。まだ有効な API またはサードパーティ コンポーネントが必要です。そして、プレイする前にメディアを再生したくありません:)

4

2 に答える 2

6

最後に、Xuggle で問題を解決しました。セットアップ後、次の行を追加する必要がありましたが、正常に動作します。

IContainer container = IContainer.make();
    if (container.open(movie, IContainer.Type.READ, null) < 0) {
        throw new RuntimeException("Cannot open '" + movie + "'");
    }

    logger.info("# Duration (ms): " + ((container.getDuration() == Global.NO_PTS) ? "unknown" : "" + container.getDuration() / 100));
    logger.info("# File size (bytes): " + container.getFileSize());
    logger.info("# Bit rate: " + container.getBitRate());

ところで、セットアップはひどいものでしたが、ついに...このコードが機能するようになりました。

于 2013-03-28T18:00:29.347 に答える
0

Java メディア フレームワークを参照してください。

http://docs.oracle.com/cd/E17802_01/j2se/javase/technologies/desktop/media/jmf/2.1.1/apidocs/index.html

ここには、他の同様のプロジェクトへのリンクもありますhttp://en.wikipedia.org/wiki/Java_Media_Framework

于 2013-03-27T22:10:05.570 に答える