永远不会调用Exoplayer executeProvisionRequest

时间:2019-06-18 12:18:43

标签: android exoplayer exoplayer2.x

我正在使用Exoplayer来播放受Wine DRM保护的广泛流媒体。我制作了MediaDrmCallback,它实现了以下两种方法:

MediaDrmCallback mediaDrmCallback = new MediaDrmCallback() {
    @Override
    public byte[] executeProvisionRequest (UUID uuid, ExoMediaDrm.ProvisionRequest request) throws Exception {
        String url = request.getDefaultUrl() + "&signedRequest=" + new String(request.getData());
        return executePost(dataSourceFactory, url, null, null);
    }

    @Override
    public byte[] executeKeyRequest(UUID uuid, ExoMediaDrm.KeyRequest request) throws Exception {
        if (flag) {
            try {
                flag = false;
                String payload = Base64.encodeToString(request.getData(), Base64.DEFAULT);

                LogCS.e("payload", payload.trim().replaceAll("\n", ""));

                DRMLicensePresenterImpl drmLicensePresenter = new DRMLicensePresenterImpl(ExoplayerActivity.this, ExoplayerActivity.this, payload.trim().replaceAll("\n", ""), ticketToStream);
                drmLicensePresenter.getDRMLicenseDetail(UrlUtil.getAltBalajiUrl(ExoplayerActivity.this, UrlUtil.DRM_LICENSE));

            } catch (Exception e) {
                e.printStackTrace();
            }
            LogCS.e("license is" + count++ + "----", license);
        }
        // get license
        return Base64.decode(license, Base64.DEFAULT);

    }
};

我正在像下面这样使用此drmCallbackObject:

private DefaultDrmSessionManager getDrmSessionManager() {
    DefaultDrmSessionManager drmSessionManager = null;
    try {

        drmSessionManager = new DefaultDrmSessionManager<>(C.WIDEVINE_UUID, FrameworkMediaDrm.newInstance(C.WIDEVINE_UUID), mediaDrmCallback, null, false);

    } catch (UnsupportedDrmException e) {
        e.printStackTrace();
    }
    return drmSessionManager;
}

executeKeyRequest被调用,但是executeProvisionRequest从不被调用。什么时候调用此方法?

0 个答案:

没有答案