Android:Media3 / Exoplayer 中的 Clearkey 不适用于 base64

问题描述 投票:0回答:1

开发一款 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 链接中工作

链接 2 --> https://cdnapisec.kaltura.com/p/2433871/sp/243387100/playManifest/protocol/https//entryId/1_pgssezc1/format/mpegdash/tags/mbr/f/a.mpd

清除密钥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'

请帮忙解决这个问题。让我知道缺少什么。

谢谢,问候, 开发

exoplayer drm base64url android-media3
1个回答
0
投票

它是固定的,虽然很愚蠢。有 最终键字符串中的字符..

© www.soinside.com 2019 - 2024. All rights reserved.