2

私はラジオ プレーヤーを作成していますが、リアルタイムでオーディオ ストリームからメタデータを取得して更新する必要があります。

私は試してみましMediaMetadataRetrieverたが、null値を取得します:

MediaMetadataRetriever mmr;

url = "http://stream0.wfmu.org/freeform-128k";

if (Build.VERSION.SDK_INT >= 14)
    mmr.setDataSource(url, new HashMap<String, String>());
else
    mmr.setDataSource(url);

String out = "";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
out += "\n";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
out += "\n";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
out += "\n";
out += mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);
out += "\n";

どうしたの?

また、メタデータがいつ変更されたかを知るにはどうすればよいですか? OnInfoListenerの使用onInfo?関心のあるメタデータ (アーティスト、タイトルなど) や、トラックの種類や言語コードを処理しMediaPlayer.TrackInfoますか?

4

1 に答える 1

0

アクセスしようとしているメタデータは、SHOUTcast サーバー (バージョン 2) 経由で配信されます。MediaMetadataRetriever は SHOUTcast メタデータの取得をサポートしていないため、使用できません。私の知る限り、SHOUTcast バージョン 2 メタデータの取得をサポートする Java ベースのライブラリは存在しないため、自分でコードを記述する必要があります。詳細については、こちらのガイドを参照してください。

于 2013-06-27T14:24:59.693 に答える