Ошибка при попытке получить метаданные из потока URL-адресов с помощью java / android - PullRequest
0 голосов
/ 16 июня 2020

Я не получаю значений при попытке получить метаданные из потока 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

Есть идеи? Я пробовал использовать разные потоки, но все они дают одинаковый результат, за исключением разных букв / цифр после @.

Ответы [ 2 ]

0 голосов
/ 22 июня 2020

Этот код распечатает запрашиваемые вами метаданные, если они существуют:

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();
0 голосов
/ 16 июня 2020

Я не знаю эту библиотеку и как работает FFmpegMediaMetadataRetriever#extractMetadata. Я подозреваю, что второй вызов mmr.extractMetadata() - это null, потому что он был «извлечен» уже тремя строчками выше.

...