我们如何展示运行chromecast sender
的{{1}}应用的锁屏艺术作品。没有任何解决方案,我花了大约两天时间做了最好的部分。
v2.7.0
库目前在v2.7.0
类中有以下方法:
VideoCastManager.java
我尝试用我自己的自定义图片交换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);
}
}
drawable,没有结果。还尝试通过以下行添加位图:
album_art_placeholder_large
但没有任何作用。我到底错过了什么?需要使用putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, bm)
键来显示锁屏艺术品?
或者我正在寻找错误的地方开始?
我尝试了一些其他链接但无济于事:
Android MediaMetadata image on lockscreen is zoomed
Adding more fields in MediaMetada GoogleCast
截至目前,该在线文件非常差,并没有多大帮助。
谢谢!
编辑:进一步调查后,锁定设备以显示锁定屏幕图像似乎需要15-20分钟。不知道为什么。
编辑2 :setupMediaSession方法。
MediaMetadataCompat
答案 0 :(得分:0)
您在定义MediaInfo时是否定义了“更大”的专辑艺术? CCL假设你有一个较小的一个,设置为index = 0,它将用于通知和迷你控制器和媒体路由器控制器对话框以及一个较大的(MediaInfo中的第二个图像,index = 1)将用于锁屏和全屏遥控器。如果有这些图像,CCL会自动使用它们。作为测试,运行CastVideos-android(v2)并查看它是否适合您。