diff --git a/api.txt b/api.txt index b87d5945f1..14a72e7596 100644 --- a/api.txt +++ b/api.txt @@ -584,7 +584,11 @@ package androidx.media3.common { field public static final String AUDIO_VORBIS = "audio/vorbis"; field public static final String AUDIO_WAV = "audio/wav"; field public static final String AUDIO_WEBM = "audio/webm"; + field public static final String IMAGE_HEIC = "image/heic"; + field public static final String IMAGE_HEIF = "image/heif"; field public static final String IMAGE_JPEG = "image/jpeg"; + field public static final String IMAGE_PNG = "image/png"; + field public static final String IMAGE_WEBP = "image/webp"; field public static final String TEXT_SSA = "text/x-ssa"; field public static final String TEXT_VTT = "text/vtt"; field public static final String VIDEO_AV1 = "video/av01"; diff --git a/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java b/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java index 8179e578d9..5c9742e79d 100644 --- a/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java +++ b/libraries/common/src/main/java/androidx/media3/common/MimeTypes.java @@ -153,7 +153,11 @@ public final class MimeTypes { // image/ MIME types + public static final String IMAGE_PNG = BASE_TYPE_IMAGE + "/png"; + public static final String IMAGE_WEBP = BASE_TYPE_IMAGE + "/webp"; public static final String IMAGE_JPEG = BASE_TYPE_IMAGE + "/jpeg"; + public static final String IMAGE_HEIC = BASE_TYPE_IMAGE + "/heic"; + public static final String IMAGE_HEIF = BASE_TYPE_IMAGE + "/heif"; /** * A non-standard codec string for E-AC3-JOC. Use of this constant allows for disambiguation diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultAssetLoaderFactory.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultAssetLoaderFactory.java index 873e5ccdc3..1f77e5f3f6 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultAssetLoaderFactory.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultAssetLoaderFactory.java @@ -22,6 +22,7 @@ import android.content.Context; import android.os.Looper; import androidx.annotation.Nullable; import androidx.media3.common.MediaItem; +import androidx.media3.common.MimeTypes; import androidx.media3.common.util.Clock; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.source.MediaSource; @@ -115,6 +116,16 @@ public final class DefaultAssetLoaderFactory implements AssetLoader.Factory { if (localConfiguration == null) { return false; } + if (localConfiguration.mimeType != null) { + ImmutableList supportedMimeTypes = + ImmutableList.of( + MimeTypes.IMAGE_PNG, + MimeTypes.IMAGE_WEBP, + MimeTypes.IMAGE_JPEG, + MimeTypes.IMAGE_HEIC, + MimeTypes.IMAGE_HEIF); + return supportedMimeTypes.contains(localConfiguration.mimeType); + } ImmutableList supportedImageTypes = ImmutableList.of(".png", ".webp", ".jpg", ".jpeg", ".heic", ".heif"); String uriPath = checkNotNull(localConfiguration.uri.getPath());