2

Android では、メディアプレーヤーを使用してデバイスで曲を再生し、カーソルを使用して (OS が追跡している) トラック情報を取得できます。私の質問は、これらに相当する Java は何ですか?

注: JavaFX について言及している人を見たことがありますが、これはデフォルトで JVM とともにインストールされていないようで、私のプログラムはもはやクロスプラットフォームではありません。

助言がありますか?

注: これらはすべてローカル ファイルですが、オーディオ ファイルの種類は問いません。

4

1 に答える 1

7

Java ミュージック プレーヤー用の JavaFX 関連のソリューションに関する情報を提供します。これは、このタスクに使用するのに適したテクノロジだと思います。

サポートされているプラ​​ットフォームとフォーマット

それらは、任意のオーディオ ファイル タイプである可能性があります。

JavaFX でサポートされているオーディオ タイプは、javafx.scene.media javadocに記載されています。JavaFX 2.2 でサポートされている形式は、mp3、mp4、wav ファイルなどのさまざまなコンテナー内の MP3、AAC、および PCM です。Ogg Theora などの他の形式はサポートされていないため、そのような形式が必要な場合は、JavaFX 2.2 とは異なるソリューションが必要になります。

JavaFX について言及している人を見たことがありますが、これはデフォルトで JVM とともにインストールされていないようで、私のプログラムはもはやクロスプラットフォームではありません。

Java 7 update 6 および JavaFX 2.2 が OS X、Windows、および Linux で実行されるため、JavaFX はデフォルトで Oracle Java ランタイムとともにインストールされます。現在、モバイル プラットフォームで JavaFX を実行するための広く利用可能なソリューションはありません (ただし、将来変更される可能性があります)。

Java 7 で JavaFX を使用する方法の詳細については、JavaFX 2.1 でのコンパイルと実行およびJavaFXデプロイメント ガイドに対する私の回答を参照してください。

トラック情報を取得する (OS が追跡する)

ほとんどのトラック情報は、実際には OS データベースではなく、メディア ファイルにエンコードされています。JavaFX で再生されるメディア ファイルからメタデータを取得できます。メディア ドキュメントで定義されているように、メディア ファイルからの限定された量のメタデータの解析がサポートされています。すべてのメディアにすべてのメタデータが含まれているわけではないことに注意してください。Amazon から無料の mp3 ファイルをテストしたところ、大量のメタデータを正常に抽出できました。iTunes からのテスト用 aac エンコード m4a ファイルのメタデータはほとんど空でした。そのため、結果は使用されているメディア ファイルによって異なります。

サンプルプレイヤー

ディレクトリからオーディオ ファイルを再生し、各曲のメタデータを表示するサンプル ミュージック プレーヤーを JavaFX で作成しました。

オーディオプレイヤー

java2sは、 Pro JavaFX 2 bookの著者によって作成されたメディア プレーヤーのソースもホストします。プロのソースは専門的に出版された本からのものですが、私のコードは簡単なハックだったので、それは私のコードよりも良いリファレンスかもしれません.

追加の質問

Linux で Oracle の JRE を使用していない私たちへの提案はありますか?

Oracle JRE は Linux で利用できますが、それを使用したくない場合は、openjdk用にopenjfxをビルドして使用するか、Oracle JRE を使用してアプリケーションを開発し、JavaFX パッケージング ツールを使用して自己配布することができます。アプリケーションに含まれているため、外部の JRE 依存関係はありません。

于 2013-06-11T07:15:48.573 に答える