2017-06-23 1 views
-1

Ich arbeite an meiner App, in der ich die Details der Songs auf einem beliebigen Medien-Anwendung erhalten möchte. Ich erhalte nicht die Daten der Google Play Music-Apps, die derzeit Songdetails wie Song-ID, Interpreten-ID und Album-ID wiedergeben.So erhalten Sie die Song-ID, Album-ID und Interpret-ID des gerade abgespielten Songs aus dem Google Play Musik

Ich habe unten Code versucht:

IntentFilter intentFilter=new IntentFilter(); 

     intentFilter.addAction("com.android.music.metachanged"); 
     intentFilter.addAction("com.android.music.playstatechanged"); 
     intentFilter.addAction("com.android.music.playbackcomplete"); 
     intentFilter.addAction("com.android.music.queuechanged"); 
     intentFilter.addAction("com.samsung.sec.android.MusicPlayer.metachanged"); 
     intentFilter.addAction("com.spotify.music.playbackstatechanged"); 
     intentFilter.addAction("com.spotify.music.metadatachanged"); 
     intentFilter.addAction("com.apple.android.music.metachanged"); 
     intentFilter.addAction("com.apple.android.music.playstatechanged"); 
     intentFilter.addAction("com.rdio.android.metachanged"); 
     intentFilter.addAction("com.rdio.android.playstatechanged"); 

     //register the intentfilters into the reciever 
     registerReceiver(mReceiver,intentFilter); 

Hier ist mein Reciever:

BroadcastReceiver mReceiver=new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, final Intent intent) { 
      String action = intent.getAction(); 
      //Bundle bundle=intent.getExtras(); 

      String cmd = intent.getStringExtra("command"); 
      Log.v("tag ", action + "/" + cmd); 

      //not getting the song id in the google play music and album_id and artist id in both 
      final String song_id=String.valueOf(intent.getLongExtra("id", 0)); 
      final String album_id= String.valueOf(intent.getLongExtra("album_id",0)); 
      final String artist_id= String.valueOf(intent.getLongExtra(MediaStore.Audio.Artists._ID,0)); 
      final String title=intent.getStringExtra("track"); 
      final String playlist_id= String.valueOf(intent.getLongExtra(MediaStore.Audio.Playlists._ID,0)); 
      final String playlist_name=intent.getStringExtra(MediaStore.Audio.Playlists.NAME); 
      final String artist=intent.getStringExtra(MediaStore.Audio.AudioColumns.ARTIST); 
      final String album=intent.getStringExtra(MediaStore.Audio.AudioColumns.ALBUM); 
     } 
    }; 

die Songs Details im Standard-Player bekommen aber in Google nicht Musik spielen.

Antwort

0

Sie müssen Id3Tag lesen, um diese Informationen zu erhalten, hier ist eine Dokumentation für MediaMetadataRetriever. Sie können es verwenden, um mit Id3Tag in Android zu arbeiten.

Anwendungsbeispiel:

MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 
mmr.setDataSource(filePath); 
String albumName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM); 
+0

Ich bekomme den Namen des Albums mit den Metadaten, aber ich bekomme nicht die Album-Art und Album-ID der Musikwiedergabe. –

+0

Welche API verwenden Sie? –

0

Für immer Song-ID, Künstler-ID und Album-ID Sie diese Methode verwenden sollten. Davon kannst du es bekommen.

0

Ich las einen Blog vor, gebe dir einen Gedanken, ich habe es nicht versucht, aber das Gefühl sollte in der Lage sein zu erreichen.

1.wenn die nächste Musik abgespielt wird, wird die App ausgestrahlt und die Sendung enthält die Informationen des nächsten Songs;

2. Zum Beispiel: Android Musik-Player wird mit "com.android.music.metachanged" Broadcast senden;

3.registerReceiver

IntentFilter intentFilter = new IntentFilter(); 
intentFilter.addAction("com.android.music.metachanged"); 
registerReceiver(Your Receiver, intentFilter); 

4.Analysis des Vorsatzes, können Sie diese Informationen aus der Absicht

intent.getStringExtra("album"); 
intent.getStringExtra("artist"); 
intent.getStringExtra("track"); 
intent.getStringExtra("notify_artistname"); 
intent.getStringExtra("notify_audioname"); 

5.Ich erhalten wissen nicht, ob Google Play Music wird eine Sendung schicken, Ich bin mir auch nicht sicher über den IntentFilter von Google Play Music.

6.Wish you success!

Verwandte Themen