gpt4 book ai didi

android - 当播放器暂停且应用程序被终止时,ExoPlayer 通知重新出现

转载 作者:行者123 更新时间:2023-12-05 06:56:29 24 4
gpt4 key购买 nike

我在使用 exoplayer 的 PlayerNotificationManager 显示玩家通知时遇到了一个非常奇怪的问题。我正在使用以下代码在前台显示通知:

class AudioPlayerService : LifecycleService() {
private val notificationListener = object : PlayerNotificationManager.NotificationListener {
override fun onNotificationPosted(
notificationId: Int,
notification: Notification,
ongoing: Boolean
) {
super.onNotificationPosted(notificationId, notification, ongoing)
if (ongoing)
startForeground(notificationId, notification)
else
stopForeground(false)
}
}

override fun onCreate() {
super.onCreate()
playerNotificationManager = PlayerNotificationManager(
this,
CHANNEL_ID,
NOTIFICATION_ID,
descriptionAdapter,
notificationListener
).apply {
setFastForwardIncrementMs(0)
setRewindIncrementMs(0)
setUseNextAction(false)
setUsePreviousAction(false)
setUseStopAction(false)
setUseChronometer(false)
}
//...
}

override fun onDestroy() {
releasePlayer()
super.onDestroy()
}
//...
}

当音乐正在播放并且应用程序被终止(从最近清除)时,它按预期工作,通知持续存在并且音乐继续播放。

但是如果暂停音乐并清除通知(应该清除,因为音乐没有播放),然后关闭应用程序,它会显示带有暂停按钮的不可关闭通知(不应显示),但暂停按钮不起作用音频也没有播放。

当 App 被杀死且播放器处于暂停状态时,如何防止显示通知?

最佳答案

我能够通过覆盖 onTaskRemoved 来解决这个问题在我的服务中。

    override fun onTaskRemoved(rootIntent: Intent?) {
super.onTaskRemoved(rootIntent)
if (player.isPlaying == false)
stopForeground(true)
}

当用户删除 App Task 时调用此函数。我们可以在这里检查我们是否需要我们的服务继续运行。

关于android - 当播放器暂停且应用程序被终止时,ExoPlayer 通知重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65123718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com