2017-08-03 82 views
4

我正在使用Expressplay网站的接收器应用程序进行Chrome播放。 https://www.expressplay.com/developer/test-apps/#ccplayerChromecast接收器应用程序无法播放来自Android发件人应用程序的widevine drm保护内容

我已经从浏览器通过传递许可证URL的Widevine流路一起进行了测试。它播放的视频,意味着接收器工作正常。

当我尝试播放来自android发件人应用程序的内容时出现问题。我将许可证URL传递给json对象。

我的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(); 
} 

我猜有recevier对从机器人在设置licenseUrl打的情况下代码也许问题。

我的接收器代码设置许可证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的情况下得到设定。

  • 从android发送者播放的结果是黑屏。

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

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

有人可以告诉我做错了什么吗?

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

非常感谢您对我的问题的关注和值得的时间。 :)

回答

0

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

所以我用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; 
       } 

这就是它! :)

1

如果您还没有这样做,检查DRM support其中有人说,

为了全面支持数字版权管理(DRM)保护的内容,你需要实现一个Custom Receiver。使用自定义接收器,您可以根据DRM要求设置认证并定制应用程序。

需要注意的是,您的接收器应用程序访问API接收器具有以下参考:

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

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

然后,针对Android应用发件人,检查以下内容:

+0

谢谢你对我的问题的回应先生。我已经完成了他们通过文件记录完成的所有事情。我一直在阅读并实施它们超过一周。我猜一切都设置好了,例如;依赖关系,sdk等 –

+0

我使用的接收器在请求来自浏览器发件人时工作正常。当我尝试从android发件人播放时出现问题。 –

+0

你能否给我提供设置widevine内容的customData的代码。或者任何其他方式来设置在android中的许可证网址和令牌? –

相关问题