From 361e5d9326048896c94d0a81cdde8af082f1bb41 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 10 Aug 2020 23:26:50 +0100 Subject: [PATCH] Demo app: Fix DRM support check for ClearKey Issue: Issue: #7735 PiperOrigin-RevId: 325900705 --- RELEASENOTES.md | 2 ++ .../google/android/exoplayer2/demo/PlayerActivity.java | 4 ++-- .../google/android/exoplayer2/drm/FrameworkMediaDrm.java | 9 +++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 0a31580488..0ed8781b51 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -282,6 +282,8 @@ * Removed support for media tunneling * Removed support for random ABR (random track selection) * Removed support for playing back in spherical stereo mode + * Fix playback of ClearKey protected content on API level 26 and earlier + ([#7735](https://github.com/google/ExoPlayer/issues/7735)). * Add Guava dependency. ### 2.11.7 (2020-06-29) ### diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 20a871b922..d087034cea 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -19,7 +19,6 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import android.content.Intent; import android.content.pm.PackageManager; -import android.media.MediaDrm; import android.net.Uri; import android.os.Bundle; import android.util.Pair; @@ -41,6 +40,7 @@ import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.RenderersFactory; import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.audio.AudioAttributes; +import com.google.android.exoplayer2.drm.FrameworkMediaDrm; import com.google.android.exoplayer2.ext.ima.ImaAdsLoader; import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException; @@ -346,7 +346,7 @@ public class PlayerActivity extends AppCompatActivity showToast(R.string.error_drm_unsupported_before_api_18); finish(); return Collections.emptyList(); - } else if (!MediaDrm.isCryptoSchemeSupported(drmConfiguration.uuid)) { + } else if (!FrameworkMediaDrm.isCryptoSchemeSupported(drmConfiguration.uuid)) { showToast(R.string.error_drm_unsupported_scheme); finish(); return Collections.emptyList(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java index 4689eed4b3..26fe66e792 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java @@ -73,6 +73,15 @@ public final class FrameworkMediaDrm implements ExoMediaDrm { private final MediaDrm mediaDrm; private int referenceCount; + /** + * Returns whether the DRM scheme with the given UUID is supported on this device. + * + * @see MediaDrm#isCryptoSchemeSupported(UUID) + */ + public static boolean isCryptoSchemeSupported(UUID uuid) { + return MediaDrm.isCryptoSchemeSupported(adjustUuid(uuid)); + } + /** * Creates an instance with an initial reference count of 1. {@link #release()} must be called on * the instance when it's no longer required.