我在 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
时执行此操作:
在下面的代码中,trackTitle
、trackSubtitle
和imageUri
是要在通知中显示的数据。
使用 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
}
}
}