2016-11-17 10 views
4

私はJavaプロジェクトで次のコードを使用している.wavファイルのプロパティを取得しようとしています。しかし、このコードを実行すると、format.getProperty("title")format.getProperty("author")、およびformat.getProperty("duration")のすべてのメソッドがnullを返します。これらの詳細を別の方法で取得する必要がありますか?.wavファイルのタイトル、アーティスト/著者および期間の取得

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(wavFile); 
AudioFormat format = audioInputStream.getFormat(); 
Object[] temp = {false, 
     format.getProperty("title"), 
     format.getProperty("author"), 
     format.getProperty("duration")}; 
+0

私は確かに.wavファイルにはタイトルや著者情報が含まれていません。 – VGR

答えて

1

they can hold several metadata typesでもWAVファイルは動作しません。使用されているソフトウェアとエンコーダ(16/32ビットPCM)によって、ファイルの構成が異なる場合があり、Java Sound APIにこのメタデータを読み取る際に問題が発生します。

私は(などApache Tikajd3libmp3agicBeaglebuddy、など)オーディオmetataggingに焦点を当てたツールとLIBSの多くを試してみましたが、それらのほとんどはWAVファイルではありませんMP3や他のオーディオフォーマットと正常に動作しますが、。

明らかに、これを処理するためのより良いものはJaudiotaggerです。これは、高速、シンプルだとあなたは次のような何かをやってあなたの目標を達成することができます以下のリンク参照してください、また

AudioFile f = AudioFileIO.read(wavFile); 
WavTag tag = (WavTag) f.getTag(); 

Object[] temp = {false, 
     tag.getFirst(FieldKey.TITLE), 
     tag.getFirst(FieldKey.ARTIST), 
     f.getAudioHeader().getTrackLength() // In seconds 
}; 

を:この機能のサポートがverから追加されました上記の2.2.4項を参照してください。したがって、常に互換性の問題を回避するには、the latest versionを使用することをお勧めします。

+0

ありがとう、あなた。それを感謝します – Dan

+0

ようこそ! :) – bosco

関連する問題