提问人:RealTV Support 提问时间:9/6/2023 最后编辑:RealTV Support 更新时间:9/8/2023 访问量:212
Android : Media3 / Exoplayer 中的 Clearkey 不适用于 base64
Android : Clearkey in Media3 / Exoplayer not working for base64
问:
为一个 Android 应用程序工作,使用 Media3 和 exoplayer 播放 clearkey 内容。 下面给出了 Build.gradle。下面描述的问题。如果需要更多详细信息,请告诉我。
我有两个用于清除密钥DRM的链接,并且两个链接都可以正常工作 https://developer-tools.jwplayer.com/stream-tester
链接 1 正在应用程序中工作
链接 1 --> https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p_ClearKey.mpd
CleaeKey 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创建的,传递给播放器。
build.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'
请帮忙。让我知道缺少什么。
谢谢 n 问候, 开发
答:
它固定了,虽然很傻。最后一个密钥字符串中有\n个字符。.
评论