diff --git a/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java b/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java
index a82ebb006d..c3c005c2a3 100644
--- a/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java
+++ b/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java
@@ -16,6 +16,7 @@
package androidx.media3.demo.main;
import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
import android.content.Context;
import android.content.DialogInterface;
@@ -381,6 +382,7 @@ public class DownloadTracker {
DataSource.Factory dataSourceFactory,
StartDownloadDialogHelper dialogHelper,
DownloadHelper downloadHelper) {
+ checkState(drmConfiguration.scheme.equals(C.WIDEVINE_UUID));
this.executorService = Executors.newSingleThreadExecutor();
this.format = format;
this.drmConfiguration = drmConfiguration;
diff --git a/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java b/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java
index 496722701f..33bff8a5d5 100644
--- a/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java
+++ b/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java
@@ -49,6 +49,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.OptIn;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.media3.common.C;
import androidx.media3.common.MediaItem;
import androidx.media3.common.MediaItem.ClippingConfiguration;
import androidx.media3.common.MediaMetadata;
@@ -273,6 +274,10 @@ public class SampleChooserActivity extends AppCompatActivity
if (localConfiguration.adsConfiguration != null) {
return R.string.download_ads_unsupported;
}
+ @Nullable MediaItem.DrmConfiguration drmConfiguration = localConfiguration.drmConfiguration;
+ if (drmConfiguration != null && !drmConfiguration.scheme.equals(C.WIDEVINE_UUID)) {
+ return R.string.download_only_widevine_drm_supported;
+ }
String scheme = localConfiguration.uri.getScheme();
if (!("http".equals(scheme) || "https".equals(scheme))) {
return R.string.download_scheme_unsupported;
diff --git a/demos/main/src/main/res/values/strings.xml b/demos/main/src/main/res/values/strings.xml
index b8f6e7c320..4497840ad5 100644
--- a/demos/main/src/main/res/values/strings.xml
+++ b/demos/main/src/main/res/values/strings.xml
@@ -59,6 +59,8 @@
IMA does not support offline ads
+ This demo app only supports downloading unencrypted or Widevine DRM content
+
Prefer extension decoders