Используйте .setDataSource для получения mediaMetadata из текущего музыкального приложения

#java #android #logcat #mediametadataretriever

#Android #источник данных #аудиоплеер #android-музыкальный проигрыватель #mediametadataretriever

Вопрос:

Я хочу получить MediaMetadata (название песни / исполнителя) из текущего воспроизводимого источника звука Android для любого приложения (spotify, google Play, soundcloud, YouTube, blackplayer и т.д.) И пытаюсь использовать MediaMetadataRetriever.setDatSource

В настоящее время у меня есть функция ‘getActiveNotifications’ в ‘MainActivity.java ‘который вызывается при нажатии кнопки, мой код выглядит следующим образом:

 public void getActiveNotifications(View view) {
    String temp ="temp";

    Log.i("myTag", "Logging active notifications:");

    //get data from MediaMetaData somehow? Always displays correct string in Logcat
    MediaMetadataRetriever mmr = new MediaMetadataRetriever();

    //mmr.setDataSource("CURRENT APP PLAYING MUSIC (googlePlay / Spotify / Soundcloud etc)");
    mmr.setDataSource("https://somewebsite.com/somefile.mp3", new HashMap<String,String>());

    //extract metadata and save to string
    String albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);


    Log.i("myTag", "done with function. ");
}
  

Могу ли я использовать .setDatSource вообще для любого музыкального приложения или это работает только для файлов?

Я вижу, что updateMediaMetaData в Logcat печатает метаданные мультимедиа воспроизводимой в данный момент песни, работающие как для приложений потоковой передачи музыки, так и для воспроизведения файлов (см. Рисунок)

введите описание изображения здесь

Я на правильном пути? Есть ли способ, которым я могу использовать .getDataSource в приложениях потоковой передачи / fileplayer для любого воспроизводимого в данный момент источника звука?

любая помощь высоко ценится, спасибо

Комментарии:

1. вы нашли решение?

2. нет, у меня нет, я взял перерыв в этом проекте