8

我正在使用 Expressplay 网站上的接收器应用程序进行 chromecast。https://www.expressplay.com/developer/test-apps/#ccplayer

我已经通过将许可证 URLWidevine 流路径一起从浏览器中对其进行了测试。它播放了视频,意味着接收器工作正常。

当我尝试从 android 发件人应用程序播放内容时出现问题。我在json对象中传递许可证 URL 。

我的android发件人代码如下。

private MediaInfo buildMediaInfo() {
    MediaMetadata movieMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
    movieMetadata.putString(MediaMetadata.KEY_SUBTITLE, "Subtitle");
    movieMetadata.putString(MediaMetadata.KEY_TITLE, "Title");
    jsonObj = new JSONObject();
    try{
       jsonObj.put("licenseUrl","https://wv.test.expressplay.com/hms/wv/rights/?ExpressPlatToken=****");
    }catch (JSONException e){
        Log.e(null,"Failed to add description to the json object", e);
    }
    return new MediaInfo.Builder("stream path.mpd")
            .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
            .setContentType("video/mp4")
            .setMetadata(movieMetadata)
            .setCustomData(jsonObj)
            //.setStreamDuration(player.getDuration())
            .build();
}

我猜这个问题可能与在设置licenseUrl时从 android 播放的情况下接收者的代码有关。

我的接收器代码设置许可证 URL 如下。

if (event.data.customData && event.data.customData.licenseUrl) {
                    console.log('setting license URL');
                    host.licenseUrl = event.data.customData.licenseUrl;
                }

event.data.customData.licenseUrl如果是 android,则未设置许可证 URL。

  • 从 android sender 播放时的结果是黑屏。

  • 从浏览器发件人播放时播放视频。

  • 在托管视频内容的 S3 服务器上启用了CORS 。

谁能告诉我我做错了什么?

从 android 传递的 JSON 对象是否没有设置许可证 URL?如果是,那么如何解决它?

预先感谢您对我的问题的关注和宝贵的时间。:)

4

2 回答 2

3

我发现在从 android 发件人应用程序连接时,在我的 Receiver 应用程序event.data.customData中未定义。

所以我用event.data.media.customData

并按如下方式访问密钥:

if(event.data.media.customData['licenseUrl'] !== null){
                    console.log('setting license URL from mobile');
                    host.licenseUrl = event.data.media.customData.licenseUrl;
                }

就是这样!:)

于 2017-08-22T13:36:45.703 回答
1

如果您还没有这样做,请检查DRM 支持,其中指出,

要完全支持受数字版权管理 (DRM) 保护的内容,您需要实施自定义接收器。使用自定义接收器,您可以设置身份验证并根据您的 DRM 要求定制您的应用程序。

请注意,您的接收器应用程序使用以下参考访问 Receiver API:

//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js

此外,要开发自定义接收器应用程序,您需要使用Google Cast SDK Developer Console注册您的应用程序。

然后,对于 Android Sender App,检查以下内容:

于 2017-08-03T16:42:57.220 回答