MP3 ファイルの URL がわかっている場合、その長さ、ビットレート、サイズなどを取得する最も簡単/最速の方法は何ですか?
これらの詳細を取得するには、MP3 の ID3 タグ部分だけをダウンロードするにはどうすればよいですか?
MP3 ファイルの URL がわかっている場合、その長さ、ビットレート、サイズなどを取得する最も簡単/最速の方法は何ですか?
これらの詳細を取得するには、MP3 の ID3 タグ部分だけをダウンロードするにはどうすればよいですか?
mp3 ファイルの ID3 タグを調べる必要があります。
必要なメタデータを別の場所で追跡しない限り。
ファイルのトラックの長さを具体的に取得するには、ID3 メタデータ タグ、具体的にはタグの「TRCK」フレームを確認する必要があります。
ID3 タグ部分のみをダウンロードするには、まずファイルの ID3 ヘッダー部分をダウンロードする必要があります。
このWeb サイトには、ID3 タグ形式に関する非常に具体的な情報が含まれています。ID3 タグのバージョン番号を確認し、それに基づいて、ID3 タグの長さに関する情報を見つける必要があります。次に、フレームが特定の順序ではないため、WHOLE タグをダウンロードする必要があります。
次に、サードパーティのライブラリを使用して TRCK フレームとそのデータを見つけることができるはずです。
質問されてから1年以上経ってからこの質問に答えていますが、後で起こった人のために追加する情報がいくつかあります. 画像全体をダウンロードせずにリモートサーバー上の画像から画像の寸法を取得することに関する同様の質問に答えました。次の URL でその議論を参照してください。
リモート サーバーから MP3 全体をダウンロードしなくても、同じ手法を使用して ID3 タグから情報を引き出すことができます。
これから通う人の参考になれば幸いです。
ファイルサイズを取得する方法は次のとおりですが、ビットレートとトラック長を取得するにはどうすればよいですか?
import java.io.*;
import java.net.*;
public class FileSizeFromURL {
public static final void main(String[] args) {
URL url;
URLConnection conn;
int size;
if(args.length != 1) {
System.out.println("Usage: FileSizeFromURL ");
return;
}
try {
url = new URL(args[0]);
conn = url.openConnection();
size = conn.getContentLength();
if(size < 0)
System.out.println("Could not determine file size.");
else
System.out.println(args[0] + "\nSize: " + size);
conn.getInputStream().close();
}
catch(Exception e) {
e.printStackTrace();
}
}
}
この情報は、URL だけでは取得できません。
最初の数 K のコンテンツを読み込み、mp3 ライブラリを使用してヘッダーをデコードし、値を取得する必要があります。
そのデータは id3 タグでエンコードされているため、少なくともそれだけの量のファイルをダウンロードする必要があります。これは最初にあるので、幸運です。
または、http 応答ヘッダーの content-length ヘッダーの値を調べて、長さを知ることができます (サーバーがどれを示さないかを通知する場合)。