Skip to content

Pixelated artwork in notification and lock screen (1024x1024 PNG) #3134

Closed

Description

@AleksanderMielczarek

Version

Media3 1.9.2

More version details

I'm experiencing an issue where the artwork displayed in the media notification and on the lock screen appears heavily pixelated / blurry, even though the source image is high quality.
The image used is a 1024x1024 PNG, so resolution should be sufficient.
The issue has been specifically observed on Samsung devices.

Image format: PNG
Resolution: 1024x1024

I also tried:

  • Passing artwork as a ByteArray
  • Converting the image locally to WebP from ByteArray
  • Bump library to 1.10.0-rc02

The issue persists in all cases

internal fun MyAudio.mapToMediaItem(): MediaItem {
    return MediaItem.Builder()
        .setUri(audioEndpoint)
        .setMediaId(id.toString())
        .setMediaMetadata(
            MediaMetadata.Builder()
                .setArtworkUri(artworkUrl?.toUri())
                .setTitle("Title")
                .setDescription("Description")
                .build()
        )
        .build()
}

Devices that reproduce the issue

Samsung S24
Samsung A54

Devices that do not reproduce the issue

Motorola Edge 30 Pro
Pixel 7 Pro

Reproducible in the demo app?

Yes

Reproduction steps

Create a MediaItem with artwork using MediaMetadata.setArtworkUri
Provide a high-resolution image (1024x1024 PNG)
Start playback using Media3 session/player
Observe notification and lock screen artwork

Expected result

Artwork should be displayed in good quality (properly scaled, no visible pixelation).

Actual result

Artwork appears pixelated in:

Media notification
Lock screen media controls

Media

Image
Image

Bug Report

Activity

  1. AleksanderMielczarek commented on Mar 24, 2026

    @AleksanderMielczarek
    Author

    Seems like downgrade to 1.8.0 fix the issue.

  2. icbaker commented on Mar 24, 2026

    @icbaker
    Collaborator

    The symptoms sound like a duplicate of #3084

  3. self-assigned this
    on Mar 24, 2026
  4. nift4 commented on Mar 24, 2026

    @nift4
    Contributor

    @icbaker The fix for #3084 only changed code for SDK<31, while S24 have launched with Android T/U respectively. I think this a subtly different bug resulting from a Samsung customization.

  5. assigned and unassigned on Mar 24, 2026
  6. joselynerodrigueztorres2-ai commented on Apr 5, 2026

    @joselynerodrigueztorres2-ai

    Exo?internal fun MyAudio.mapToMediaItem(): MediaItem {
    return MediaItem.Builder()
    .setUri(audioEndpoint)
    .setMediaId(id.toString())
    .setMediaMetadata(
    MediaMetadata.Builder()
    .setArtworkUri(artworkUrl?.toUri())
    .setTitle("Title")
    .setDescription("Description")
    .build()
    )
    .build()
    }

  7. tonihei commented on Jun 16, 2026

    @tonihei
    Collaborator

    I was able to reproduce a slight blurriness if the provided artwork size is just a power-of-2 multiple above the system enforced size limit. As the current logic was only using the efficient subsampling logic during decoding, which may cause the Bitmap to be only half as large as it should be. From the screenshots above I can't 100% confirm this is the complete explanation for what you are seeing, but it's at least a likely explanation.

    The relationship to these devices is probably the exact size limit configured in the system. On the Samsung S24 I tested, the limit was 480 pixels, so your 1024px artwork was scaled down by a factor of 4 to only 256 pixels.

    We'll provide a fix that still uses the efficient subsampling for decoding itself, but then applies proper scaling to the exact size limit to prevent under shooting the limit significantly.

  8. assigned and unassigned on Jun 16, 2026
  9. locked and limited conversation to collaborators on Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions