Error trying to get metadata from url stream using java/android

582 Views Asked by At

I am getting no values while trying to get the metadata from a URL stream.

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));

I get error java.lang.NullPointerException: println needs a message. this is because the String is empty. If I try

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

my println gives me

I/metadata: wseemann.media.FFmpegMediaMetadataRetriever@fd7a190

Any ideas? I have tried with various different streams but all give the same result except different letters/numbers after @.

2

There are 2 best solutions below

4
René Jörg Spies On

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.

0
William Seemann On

This code will print out the metadata you are requesting, if it exists:

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();