外线玩家通知图像添加



我在 exoplayer 中使用 PlayerNotificationManager。

请让我们都知道以下内容...

How to set custom image in Exoplayer Notification with action handler.
How to set subtext in Exoplayer Notification.
Will be of great help. Thank you.
您可以在

创建MediaDescriptionAdapter时执行此操作:

在下面的代码中,trackTitletrackSubtitleimageUri是要在通知中显示的数据。

使用 Glide 异步加载图像,并在callBack中更新通知图像。

希望对您有所帮助!来自BR的问候!

    private fun getMediaDescriptionAdapter(
        trackTitle: String,
        trackSubtitle: String
    ): PlayerNotificationManager.MediaDescriptionAdapter {
        return object : PlayerNotificationManager.MediaDescriptionAdapter {
            override fun createCurrentContentIntent(player: Player?): PendingIntent? {
                val intent = Intent(applicationContext, MainActivity::class.java)
                return PendingIntent.getActivity(
                    applicationContext,
                    0,
                    intent,
                    PendingIntent.FLAG_UPDATE_CURRENT
                )
            }
            override fun getCurrentContentText(player: Player?): String? {
                return trackSubtitle
            }
            override fun getCurrentContentTitle(player: Player?): String {
                return trackTitle
            }
            override fun getCurrentLargeIcon(
                player: Player?,
                callback: PlayerNotificationManager.BitmapCallback?
            ): Bitmap? {
                if (trackPlaybackState.imageUri == null) return null
                // load the media image asyncronously
                val thread = Thread {
                    try {
                        val uri = Uri.parse(trackPlaybackState.imageUri.toString())
                        val bitmap = Glide.with(applicationContext)
                            .asBitmap()
                            .load(uri)
                            .submit().get()
                        trackImage = bitmap
                        callback?.onBitmap(bitmap)
                    } catch (e: ExecutionException) {
                        e.printStackTrace()
                    } catch (e: InterruptedException) {
                        e.printStackTrace()
                    }
                }
                thread.start()
                return trackImage
            }
        }
    }

最新更新