In meiner Anwendung verwende ich MediaSessionCompat
, um Audio von meinem Media Player-Dienst abzuspielen. Insbesondere möchte ich die Metadaten des aktuellen Songs an Bluetooth-Geräte übertragen (was funktioniert) und das Sperrbildschirmbild auf das Albumcover des aktuellen Songs einstellen.
Ähnlich wie bei dieser Frage: Sperrbildschirmhintergrund in Android einstellen (wie Spotify)
Jedes Mal, wenn sich der Song ändert, lösche ich zuerst die aktuelle MediaMetadataCompat
und PlaybackStateCompat
von MediaSessionCompat
like so:
Dann erstelle ich neue Instanzen dieser Klassen mit ihren jeweiligen Buildern
%Vor% Dann setze ich die neuen Metadaten auf MediaSessionCompat
Auf meinem Bluetooth-Gerät funktionieren die Metadaten einwandfrei und ändern sich bei jedem Songwechsel. Auf meinem Handy wird die Albumabdeckung des Sperrbildschirms jedoch nur beim ersten Mal aktualisiert. Ich habe bestätigt, dass die Bitmap, die ich einstelle, die neue ist, aber das Bild ändert sich nicht.
Ich erstelle auch eine Medienstilbenachrichtigung im Dienst, damit der Benutzer die Musik von einer dauerhaften Benachrichtigung und von ihrem Sperrbildschirm aus steuern kann.
%Vor% Die Methode setLargeIcon
für meine Medienbenachrichtigung wirkt sich jedoch nicht auf das Albumcover aus, das auf dem Sperrbildschirm angezeigt wird. Dadurch wird es in der Benachrichtigung selbst angezeigt, aber nicht als Sperrbildschirmhintergrund.
Tags und Links android android-mediasession