1

私は現在、音楽ストリーミング/インターネット ラジオの Android アプリに取り組んでいます。前もって感謝します!

音楽は再生できますが、現在再生中の曲、アルバム アートなどの情報を取得する方法がわかりません。これらの情報を取得できれば、私のアプリは本当に役に立ちます。

私の質問は、現在再生中の曲について、どのように知るか、またはどこで情報を入手できるかということです。私が気づいたように、VLCはリンクだけでそれを行うことができます。

これは vlc のスクリーンショットです。

ここに画像の説明を入力 ここに画像の説明を入力

ここに私が試したいくつかのリンクがあります:

http://tar.stream.dev.al:9078/listen.pls

http://84.46.147.81:80/m1/mp3

http://stream.radioeger.hu:18000/listen.pls

http://95.110.186.253:8020/magic.mp3

4

2 に答える 2

3

MediaMetadataRetriever を介してオーディオ メタデータを取得できますが、MediaMetadataRetriever は Android の特定のバージョンの URL では機能しません。そのため、回避策としてFFmpegMediaMetadataRetrieverを使用して、試してみることをお勧めします。

于 2014-08-05T05:02:58.063 に答える
1

ほとんどのラジオ ストリームは、http ストリーミングを使用します。圧縮されたオーディオ データは通常、メタデータとインターリーブされます。そのため、http ストリームをリアルタイムで処理し、メタデータを抽出する方法が必要になります。Shoutcast の場合、メタデータはプロトコルの一部です。streamripper の例を次に示します。

http://streamripper.cvs.sourceforge.net/viewvc/streamripper/streamripper/ripper.c?revision=1.1.1.1&view=markup

従来の HTTP ストリーミングの場合、プロトコルにはメタデータが含まれませんが、コンテナーには含まれます。この場合、コンテナを基本的にデコードする必要もあります。ここでも streamripper の例を示します。これは libvorbis を使用してコンテナーを検査し、メタデータを取得します。ただし、それを正しく行うには、いくつかの魔法のトリックを行う必要があります。

http://streamripper.cvs.sourceforge.net/viewvc/streamripper/sripper_1x/lib/ripogg.c?revision=1.22&view=markup

HTH

于 2014-08-05T05:23:04.833 に答える