【问题标题】:Android NowPlaying MediaSession Lock Screen (Samsung)Android NowPlaying MediaSession 锁屏(三星)
【发布时间】:2021-11-12 14:34:01
【问题描述】:

我正在开发基于 ExoPlayer 的音频应用程序,我已经为通知中心和锁定屏幕中的 NowPlaying 栏实现了 MediaSession 控件。

通知中心的 NowPlaying 栏适用于每部手机,但在某些三星手机 (Android 11) 上,NowPlaying 栏在锁定屏幕上不可见。

有谁知道如何解决这个问题? 我正在尝试修复此问题一周,但没有任何效果...

【问题讨论】:

    标签: java android stream samsung-mobile mpnowplayinginfocenter


    【解决方案1】:

    上周看到这个问题,用下面的代码解决了

    MediaSessionCompat mediaSession = new MediaSessionCompat(this, MEDIA_SESSION_TAG);
        mediaSession.setActive(true);
        mediaSession.setMetadata(
                new MediaMetadataCompat.Builder()
                        .putString(MediaMetadata.METADATA_KEY_TITLE, title)
                        .putString(MediaMetadata.METADATA_KEY_ARTIST, author)
                        .build()
        );
    

    像下面这样添加通知代码,或者只为 MediaStyle 添加.setMediaSession(mediaSession.getSessionToken()))

    Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
                .addAction(iconFavorite, "favorite", pendingFavoriteIntent)
                .addAction(R.drawable.ic_notification_prev, "prev", pendingPrevIntent)
                .addAction(iconPlayPause, titlePlayPause, pendingToggleIntent)
                .addAction(R.drawable.ic_notification_next, "next", pendingNextIntent)
                .addAction(R.drawable.ic_close, "cancel", pendingCancelIntent)
                .setStyle(new androidx.media.app.NotificationCompat.MediaStyle()
                        .setShowActionsInCompactView(1, 2, 3)
                        .setShowCancelButton(true)
                        .setMediaSession(mediaSession.getSessionToken()))
                .setSmallIcon(R.drawable.ic_notification_play)
                .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
                .setVibrate(new long[]{0L})
                .setPriority(NotificationCompat.PRIORITY_MAX)
                .setContentTitle(title)
                .setContentText(author)
                .setSubText(title)
                .setContentIntent(selectPendingIntent)
                .setLargeIcon(bm)
                .build();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      相关资源
      最近更新 更多