-1

尝试从 URL 流中获取元数据时,我没有得到任何值。

String url;
        FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
        url = "http://stream.radiojar.com/rxmkwt2p5tzuv";
        mmr.setDataSource(url, new HashMap<String, String>());
        mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM);
        mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ARTIST);
        //String all = mmr.toString();
        Log.i("metadata",mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM));

我收到错误 java.lang.NullPointerException:println 需要一条消息。这是因为字符串是空的。如果我尝试

String all = mmr.toString();
        Log.i("metadata",all);

我的 println 给了我

I/metadata: wseemann.media.FFmpegMediaMetadataRetriever@fd7a190

有任何想法吗?我尝试过各种不同的流,但除了@之后的字母/数字不同外,所有的结果都相同。

4

2 回答 2

0

I don't know this library and how FFmpegMediaMetadataRetriever#extractMetadata works. I suspect that the second call to mmr.extractMetadata() is null because it has been "extracted" already three lines above.

于 2020-06-16T20:53:06.467 回答
0

此代码将打印出您请求的元数据(如果存在):

String url = "http://stream.radiojar.com/rxmkwt2p5tzuv";

FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
mmr.setDataSource(url, new HashMap<String, String>());
String album = mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM);
String artist = mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ARTIST);            

if (album != null) {    
    Log.i("album", album);
}

if (artist != null) {    
    Log.i("artist", artist);
}

mmr.release();
于 2020-06-22T06:04:03.340 回答