-
Notifications
You must be signed in to change notification settings - Fork 758
Description
Version
Media3 1.8.0
More version details
No response
Devices that reproduce the issue
- Pixel 7a running Android 16 (build number BP3A.250905.014)
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Not tested
Reproduction steps
- Create a
MediaItemwith an artwork URI corresponding to a 1024x1024 image. - Use the item in a
SimpleBasePlayerimplementation's playlist.
Expected result
No strict mode violations.
Actual result
I receive a bunch of strict mode violations like the following:
10-04 08:22:32.260 E NupApplication$onCreate android.os.strictmode.CustomViolation: Downscaling oversized MediaMetadata Bitmap
at android.os.StrictMode$AndroidBlockGuardPolicy.onCustomSlowCall(StrictMode.java:1731)
at android.os.StrictMode.noteSlowCall(StrictMode.java:2966)
at android.media.MediaMetadata$Builder.scaleBitmap(MediaMetadata.java:995)
at android.media.MediaMetadata$Builder.build(MediaMetadata.java:980)
at android.media.session.MediaSession.setMetadata(MediaSession.java:513)
at androidx.media3.session.legacy.MediaSessionCompat$MediaSessionImplApi21.setMetadata(MediaSessionCompat.java:2069)
at androidx.media3.session.legacy.MediaSessionCompat.setMetadata(MediaSessionCompat.java:538)
at androidx.media3.session.MediaSessionLegacyStub.setMetadata(MediaSessionLegacyStub.java:1171)
at androidx.media3.session.MediaSessionLegacyStub.access$1700(MediaSessionLegacyStub.java:118)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast$1.onSuccess(MediaSessionLegacyStub.java:1675)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast$1.onSuccess(MediaSessionLegacyStub.java:1669)
at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1102)
at android.os.Handler.handleCallback(Handler.java:1041)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.dispatchMessage(Looper.java:315)
at android.os.Looper.loopOnce(Looper.java:251)
at android.os.Looper.loop(Looper.java:349)
at android.app.ActivityThread.main(ActivityThread.java:9041)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
I'm also seeing this slightly different violation:
10-04 08:22:32.262 E NupApplication$onCreate android.os.strictmode.CustomViolation: Downscaling oversized Icon Bitmap
at android.os.StrictMode$AndroidBlockGuardPolicy.onCustomSlowCall(StrictMode.java:1731)
at android.os.StrictMode.noteSlowCall(StrictMode.java:2966)
at android.graphics.drawable.Icon.scaleDownIfNecessary(Icon.java:1162)
at android.graphics.drawable.Icon.scaleDownIfNecessary(Icon.java:1184)
at android.app.Notification.reduceImageSizes(Notification.java:8080)
at android.app.Notification$Builder.build(Notification.java:7741)
at androidx.core.app.NotificationCompatBuilder.buildInternal(NotificationCompatBuilder.java:428)
at androidx.core.app.NotificationCompatBuilder.build(NotificationCompatBuilder.java:338)
at androidx.core.app.NotificationCompat$Builder.build(NotificationCompat.java:2528)
at androidx.media3.session.DefaultMediaNotificationProvider.createNotification(DefaultMediaNotificationProvider.java:389)
at androidx.media3.session.MediaNotificationManager.$r8$lambda$buumm_xVh6KuEzVTNi7Lz3qTH48(MediaNotificationManager.java:188)
at androidx.media3.session.MediaNotificationManager$$ExternalSyntheticLambda2.run(R8$$SyntheticClass:0)
at androidx.media3.common.util.Util.postOrRun(Util.java:802)
at androidx.media3.session.MediaNotificationManager.updateNotification(MediaNotificationManager.java:184)
at androidx.media3.session.MediaSessionService.onUpdateNotification(MediaSessionService.java:677)
at androidx.media3.session.MediaSessionService.onUpdateNotificationInternal(MediaSessionService.java:712)
at androidx.media3.session.MediaSessionService$MediaSessionListener.onNotificationRefreshRequired(MediaSessionService.java:784)
at androidx.media3.session.MediaSessionImpl.$r8$lambda$LbaJMA-nvOZMx4M1Mvj1WGuv1Lc(MediaSessionImpl.java:1078)
at androidx.media3.session.MediaSessionImpl$$ExternalSyntheticLambda20.run(R8$$SyntheticClass:0)
at androidx.media3.common.util.Util.postOrRun(Util.java:802)
at androidx.media3.session.MediaSessionImpl.onNotificationRefreshRequired(MediaSessionImpl.java:1074)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast$1.onSuccess(MediaSessionLegacyStub.java:1683)
at androidx.media3.session.MediaSessionLegacyStub$ControllerLegacyCbForBroadcast$1.onSuccess(MediaSessionLegacyStub.java:1669)
at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1102)
at android.os.Handler.handleCallback(Handler.java:1041)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.dispatchMessage(Looper.java:315)
at android.os.Looper.loopOnce(Looper.java:251)
at android.os.Looper.loop(Looper.java:349)
at android.app.ActivityThread.main(ActivityThread.java:9041)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
My code is currently calling MediaMetadata.Builder().setArtworkUri() with URIs corresponding to a ContentProvider that provides 1024x1024 AVIF images. I don't think it's practical for me to use smaller images on my end, since my activity actually makes use of the full resolution.
This just started after my phone applied a system update for build number BP3A.250905.014, so I suspect it was caused by a framework change -- I didn't see any violations using whichever build of Android 16 that I was on before.
I haven't spent much time looking at the framework code yet, but I wonder if this from https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/values/config.xml is related:
<!-- The maximum bitmap size that can be written to a MediaMetadata object. This value
is the max width/height allowed in dips.-->
<dimen name="config_mediaMetadataBitmapMaxSize">320dp</dimen>Media
Not applicable
Bug Report
- You will email the zip file produced by
adb bugreportto [email protected] after filing this issue.