MediaSession在锁屏界面上没有显示背景

3

我正在使用Lollipop上的MediaSession来控制播放。它似乎可以工作,因为我的Android Wear设备允许我控制播放,但是手机锁屏没有显示来自METADATA_KEY_ALBUM_ART_URI的图像,Android Wear上也没有显示背景。我正在使用自己的自定义通知(而不是媒体样式通知)。以下是我的MediaSession代码。

if (mediaSession == null) {
            mediaSession = new MediaSession(this, TAG);


            mediaSession.setCallback(new MediaSessionCallback());
        }
        mediaSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS | MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);

        MediaMetadata.Builder metadataBuilder = new MediaMetadata.Builder();
        metadataBuilder.putString(MediaMetadata.METADATA_KEY_TITLE, getMediaTitle());
        if (imageURL != null) {

            metadataBuilder.putString(MediaMetadata.METADATA_KEY_ALBUM_ART_URI, imageURL);
        }

        mediaSession.setMetadata(metadataBuilder.build());
        PlaybackState.Builder stateBuilder = new PlaybackState.Builder();
        stateBuilder.setActions(PlaybackState.ACTION_PLAY | PlaybackState.ACTION_PLAY_PAUSE | PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_REWIND | PlaybackState.ACTION_FAST_FORWARD);

        stateBuilder.setState(playStateStatus == Paused ? PlaybackState.STATE_PAUSED : PlaybackState.STATE_PLAYING, PlaybackState.PLAYBACK_POSITION_UNKNOWN, 1.0f);

        mediaSession.setPlaybackState(stateBuilder.build());
        mediaSession.setActive(true);

谢谢。

你是否在NotificationBuilder上设置了.setLargeIcon(albumArtBitmap)?这会显示为锁屏背景吗?另外,为什么不使用MediaStyle呢? - Nagesh Susarla
嗯,那没解决问题。我以为专辑封面与早期系统上的远程客户端有关,所以我认为它与Lollipop上的mediasession有关。我还没有时间转移到新的媒体样式通知。 - casolorz
1个回答

7

看起来答案使用了MediaMetadata.METADATA_KEY_ALBUM_ART,所以我不确定METADATA_KEY_ALBUM_ART_URI的作用是什么。

metadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ALBUM_ART, bitmap);


当我尝试运行这段代码时,专辑封面在Android 4.4.2上会被拉伸显示。 - msevgi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接