我正在为我的应用程序实现DRM,但获得配置证书的请求不起作用。这是生成的url (POST) https://www.googleapis.com/certificateprovisioning/v1/devicecertificates/create?key=AIzaSyB-5OLKTx2iU5mko18DfdwK5611JIjbUhE&signedRequest=CloKTAgAEkgAAAACAAAWOhe56yXvv4bS5HsN9tcC1CDSSeLQ33QhETq_xJainehEOj9ydrcwebiZ-oGsQJqImOAtmGLp7I12QOBURBH0oPESBFh4r1oaBAgAEgASIG2kLvPaj2acjLz9TCUxWtI6PcOjr97TmOj4_5dlb8xO的一个示例,但是这个请求似乎比这个示例要排序得多。生成url的代码与ExoPlayer源代码
中的代码相同。@Override
public byte[] executeProvisionRequest(UUID uuid, ProvisionRequest request)
throws MediaDrmCallbackException {
String url =
request.getDefaultUrl() + "&signedRequest=" + Util.fromUtf8Bytes(request.getData());
return executePost(
dataSourceFactory,
url,
/* httpBody= */ null,
/* requestProperties= */ Collections.emptyMap());
}
我也试着从ExoPlayer使用HttpMediaDrmCallback,它也不工作。我猜request.getData()是错误的。当我在Android 7.1.1的Nexus 9上测试时,这个请求发生了,如果我在Android 10/11上测试,它就会正常工作。知道是怎么回事吗?
它通过强制Widevine L3
工作