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
MediaItem with an artwork URI corresponding to a 1024x1024 image.
- Use the item in a
SimpleBasePlayer implementation'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
Version
Media3 1.8.0
More version details
No response
Devices that reproduce the issue
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Not tested
Reproduction steps
MediaItemwith an artwork URI corresponding to a 1024x1024 image.SimpleBasePlayerimplementation's playlist.Expected result
No strict mode violations.
Actual result
I receive a bunch of strict mode violations like the following:
I'm also seeing this slightly different violation:
My code is currently calling
MediaMetadata.Builder().setArtworkUri()with URIs corresponding to aContentProviderthat 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:
Media
Not applicable
Bug Report
adb bugreportto android-media-github@google.com after filing this issue.