Media3 issue ties DRM fallback to Widevine 16.0 devices
A GitHub issue reports that DRM-protected videos are playing in a non-secure mode on specific Android devices (Motorola G34, OnePlus Nord CE 3 Lite 5G) when using Media3 1.4.0, leading to issues like visible screenshots and playback stuttering. The problem is attributed to changes in how `mediaCryptoRequiresSecureDecoder` is initialized in ExoPlayer, and is hypothesized to be related to Widevine plugin versions below 16.1.
Key Takeaways
- The issue was reported against Media3 1.4.0 and says the problem starts with 1.4.0-alpha01.
- Reproducible devices listed include Motorola G34 on Android 14 and OnePlus Nord CE 3 Lite 5G on Android 13.
- The reporter says non-secure playback allows screenshots to show protected video and causes stuttering at higher speeds.
- Google contributor icbaker said MediaDrm.requiresSecureDecoder returns false for Widevine version 16.0 and earlier, but works from 16.1.
- The suggested fix is for FrameworkMediaDrm to check the Widevine version before relying on MediaDrm.requiresSecureDecoder.
Why It Matters
This is an implementation bug with immediate playback and protection consequences: on some devices, Media3 is choosing non-secure codecs for DRM content, which exposes frames to screenshots and changes playback behavior. The broader issue is not ExoPlayer alone; Google says the root cause sits in how MediaDrm.requiresSecureDecoder behaves on Widevine 16.0 and earlier, while 16.1 works correctly. For streaming teams, the key question is which Android devices ship with those older Widevine versions and whether apps depend on the framework call today. Watch for the FrameworkMediaDrm change that stops relying on MediaDrm.requiresSecureDecoder on CDM 16.0.0.
Read full article at github.com