开发一款 Android 应用程序,使用 Media3 和 exoplayer 播放明码内容。 下面给出了 Build.gradle。问题描述如下。如果需要更多详细信息,请告诉我。
我有两个清除密钥 DRM 的链接,并且 两者都工作正常 https://developer-tools.jwplayer.com/stream-tester
链接 1 正在应用程序中运行
链接 1 --> https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd
ClaeKey FmY0xnWCPCNaSpRG-tUuTQ
ClearKid nrQFDeRLSAKTLifXUIPiZg
以上链接适用于 Android Exoplayer/Media3。
链接 2 不是工作情况,但在上面给出的 jwplayer 链接中工作
清除密钥caee457911302478487e6680bf0b3d1b
ClearKid a07c5d499dcead0fb416fed5913967be
编码密钥:尝试过使用和不使用 base64url 编码。但没有帮助。
ClearKey yu5FeREwJHhIfmaAvws9Gw
Clearkid oHxdSZ3OrQ-0Fv7VkTlnvg
下面是代码片段:
String keyString = "{\"keys\":[{\"kty\":\"oct\",\"k\":\"" + Clearkey + "\",\"kid\":\"" + Clearkid+ "\"}],'type':\"temporary\"}";
LocalMediaDrmCallback drmCallback = new LocalMediaDrmCallback(keyString.getBytes());
DrmSessionManager manager_local = new DefaultDrmSessionManager.Builder()
.setUuidAndExoMediaDrmProvider(C.CLEARKEY_UUID, FrameworkMediaDrm.DEFAULT_PROVIDER)
DashMediaSource.Factory(dataSourceFactory)
.setDrmSessionManagerProvider( mediaItem -> manager_local)
根据上述详细信息,mediaSource 是使用 DashMediaSource 创建的,并传递给播放器。
为此构建.gradle:
implementation 'androidx.media3:media3-exoplayer:1.1.0'
implementation 'androidx.media3:media3-exoplayer-dash:1.1.0'
implementation 'androidx.media3:media3-ui:1.1.0'
implementation 'androidx.media3:media3-exoplayer-hls:1.1.0'
谢谢,问候, 开发
它是固定的,虽然很愚蠢。有 最终键字符串中的字符..