Wie gehen wir vor, um das Lockscreen-Artwork für eine chromecast sender
App unter v2.7.0
anzuzeigen. Ich habe den besten Teil von ungefähr 2 Tagen auf diesem ohne jeden Beschluss verbracht.Chromecast Sender v2.7.0 lockscreen image
Die v2.7.0
Bibliothek hat derzeit die folgende Methode in der VideoCastManager.java
Klasse:
private void setBitmapForLockScreen(MediaInfo video) {
if (video == null || mMediaSessionCompat == null) {
return;
}
Uri imgUrl = null;
Bitmap bm = null;
List<WebImage> images = video.getMetadata().getImages();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR2) {
if (images.size() > 1) {
imgUrl = images.get(1).getUrl();
} else if (images.size() == 1) {
imgUrl = images.get(0).getUrl();
} else if (mContext != null) {
// we don't have a url for image so get a placeholder image from resources
bm = BitmapFactory.decodeResource(mContext.getResources(),
R.drawable.album_art_placeholder_large);
}
} else if (!images.isEmpty()) {
imgUrl = images.get(0).getUrl();
} else {
// we don't have a url for image so get a placeholder image from resources
bm = BitmapFactory.decodeResource(mContext.getResources(),
R.drawable.album_art_placeholder);
}
if (bm != null) {
MediaMetadataCompat currentMetadata = mMediaSessionCompat.getController().getMetadata();
MediaMetadataCompat.Builder newBuilder = currentMetadata == null
? new MediaMetadataCompat.Builder()
: new MediaMetadataCompat.Builder(currentMetadata);
mMediaSessionCompat.setMetadata(newBuilder
.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bm)
.build());
} else {
if (mLockScreenFetchTask != null) {
mLockScreenFetchTask.cancel(true);
}
mLockScreenFetchTask = new FetchBitmapTask() {
@Override
protected void onPostExecute(Bitmap bitmap) {
if (mMediaSessionCompat != null) {
MediaMetadataCompat currentMetadata = mMediaSessionCompat.getController()
.getMetadata();
MediaMetadataCompat.Builder newBuilder = currentMetadata == null
? new MediaMetadataCompat.Builder()
: new MediaMetadataCompat.Builder(currentMetadata);
mMediaSessionCompat.setMetadata(newBuilder
.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmap)
.build());
}
mLockScreenFetchTask = null;
}
};
mLockScreenFetchTask.execute(imgUrl);
}
}
ich versucht habe swaping den album_art_placeholder_large
ziehbar mit meinem eigenen benutzerdefinierten Bild, keine Ergebnisse. Versuchen Sie auch, eine Bitmap über die folgende Zeile hinzuzufügen:
aber nichts funktioniert. Was genau fehlt mir hier? Was muss MediaMetadataCompat
Schlüssel verwendet werden, um die Lockscreen-Grafik anzuzeigen? Oder schaue ich zuerst auf den falschen Platz?
einige andere Links i versucht, aber ohne Erfolg:
Android MediaMetadata image on lockscreen is zoomed
Adding more fields in MediaMetada GoogleCast
Das Dokument online wie jetzt ist unglaublich schlecht und nicht viel helfen.
Danke!
BEARBEITEN: Bei weiteren Untersuchungen scheint es 15-20 Minuten nach dem Sperren des Geräts, um das Lockscreen-Bild anzuzeigen. Nicht sicher warum.
EDIT 2: setupMediaSession-Methode.
Wo rufen Sie 'mMediaSessionCompat.setActive (true)' '? – ianhanniballake
@ianhanniballake innerhalb der setupMediaSession-Methode. Ich verwende die Standardbibliothek 2.7.0 wie sie ist. Ich habe die Frage mit der oben genannten Methode aktualisiert. – user2511882