使用媒体通知

This commit is contained in:
HapeLee
2025-10-19 01:39:54 +08:00
parent cf7b8446cd
commit df34329149
2 changed files with 19 additions and 25 deletions
@@ -551,32 +551,30 @@ class AudioPlayService : BaseService(),
} }
private fun createNotification(): NotificationCompat.Builder { private fun createNotification(): NotificationCompat.Builder {
var nTitle: String = when { val nTitle: String = when {
pause -> getString(R.string.audio_pause) pause -> getString(R.string.audio_pause)
timeMinute in 1..60 -> getString( timeMinute in 1..60 -> getString(R.string.playing_timer, timeMinute)
R.string.playing_timer,
timeMinute
)
else -> getString(R.string.audio_play_t) else -> getString(R.string.audio_play_t)
} } + ": ${AudioPlay.book?.name}"
nTitle += ": ${AudioPlay.book?.name}"
var nSubtitle = AudioPlay.durChapter?.title val nSubtitle = AudioPlay.durChapter?.title ?: getString(R.string.audio_play_s)
if (nSubtitle.isNullOrEmpty()) {
nSubtitle = getString(R.string.audio_play_s) val builder = NotificationCompat.Builder(this@AudioPlayService, AppConst.channelIdReadAloud)
}
val builder = NotificationCompat
.Builder(this@AudioPlayService, AppConst.channelIdReadAloud)
.setSmallIcon(R.drawable.ic_volume_up) .setSmallIcon(R.drawable.ic_volume_up)
.setSubText(getString(R.string.audio)) .setSubText(getString(R.string.audio))
.setOngoing(true) .setOngoing(true)
.setOnlyAlertOnce(true) .setOnlyAlertOnce(true)
.setContentTitle(nTitle) .setContentTitle(nTitle)
.setContentText(nSubtitle) .setContentText(nSubtitle)
.setContentIntent( .setContentIntent(activityPendingIntent<AudioPlayActivity>("activity"))
activityPendingIntent<AudioPlayActivity>("activity") .setLargeIcon(cover)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setStyle(
androidx.media.app.NotificationCompat.MediaStyle()
.setShowActionsInCompactView(0, 1, 2)
.setMediaSession(mediaSessionCompat?.sessionToken)
) )
builder.setLargeIcon(cover)
if (pause) { if (pause) {
builder.addAction( builder.addAction(
R.drawable.ic_play, R.drawable.ic_play,
@@ -590,6 +588,7 @@ class AudioPlayService : BaseService(),
servicePendingIntent<AudioPlayService>(IntentAction.pause) servicePendingIntent<AudioPlayService>(IntentAction.pause)
) )
} }
builder.addAction( builder.addAction(
R.drawable.ic_stop_black_24dp, R.drawable.ic_stop_black_24dp,
getString(R.string.stop), getString(R.string.stop),
@@ -600,12 +599,7 @@ class AudioPlayService : BaseService(),
getString(R.string.set_timer), getString(R.string.set_timer),
servicePendingIntent<AudioPlayService>(IntentAction.addTimer) servicePendingIntent<AudioPlayService>(IntentAction.addTimer)
) )
builder.setStyle(
androidx.media.app.NotificationCompat.MediaStyle()
.setShowActionsInCompactView(0, 1, 2)
.setMediaSession(mediaSessionCompat?.sessionToken)
)
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
return builder return builder
} }
+2 -2
View File
@@ -1241,8 +1241,8 @@
<string name="firebase_enable_summary">允许应用使用Google Firebase进行崩溃和性能统计</string> <string name="firebase_enable_summary">允许应用使用Google Firebase进行崩溃和性能统计</string>
<string name="locate_current">定位至当前</string> <string name="locate_current">定位至当前</string>
<string name="padding_display_cutouts">填充刘海区域</string> <string name="padding_display_cutouts">填充刘海区域</string>
<string name="system_media_control_compatibility_change">系统媒体控件兼容性更改</string> <string name="system_media_control_compatibility_change">使用媒体通道</string>
<string name="system_media_control_compatibility_change_summary">当锁屏不显示系统媒体控件时可以尝试开启,比如 OneUI 7.0或 OriginOS 等</string> <string name="system_media_control_compatibility_change_summary">使用OEM厂商提供的媒体通道,可能解决一些通知无法显示的问题</string>
<string name="read_aloud_pause_resume">朗读暂停/继续</string> <string name="read_aloud_pause_resume">朗读暂停/继续</string>
<string name="play_mode">播放模式</string> <string name="play_mode">播放模式</string>
<string name="tabletInterface">平板界面</string> <string name="tabletInterface">平板界面</string>