【问题标题】:How to DRM Content in chromecast如何在 chromecast 中对内容进行 DRM
【发布时间】:2021-05-13 04:26:38
【问题描述】:

我们正在尝试将 drm MPD 内容从 Chrome 播放到 Chromecast 我们的接收端应用代码如下:

const context = cast.framework.CastReceiverContext.getInstance();
const playbackConfig = new cast.framework.PlaybackConfig();
playbackConfig.licenseUrl = 'http://widevine/yourLicenseServer';
playbackConfig.protectionSystem = cast.framework.ContentProtection.WIDEVINE;
playbackConfig.licenseRequestHandler = requestInfo => {
  requestInfo.withCredentials = true;
};
context.start({playbackConfig: playbackConfig});

// Update playback config licenseUrl according to provided value in load request.
context.getPlayerManager().setMediaPlaybackInfoHandler((loadRequest, playbackConfig) => {
if (loadRequest.media.customData && loadRequest.media.customData.licenseUrl) {
 playbackConfig.licenseUrl = loadRequest.media.customData.licenseUrl;
 }
 return playbackConfig;
});

我没有正确的方法在客户端应用程序中为 drm 传递自定义数据。 请帮忙。

【问题讨论】:

    标签: chromecast google-cast drm google-cast-sdk


    【解决方案1】:

    请按照js的代码

    new ChromecastJS().cast({
     content: "xxxxxx",
     contentType: "application/dash+xml",
     poster: "xxxxxxx",
     title: "xxxxx",
     description: "xxxxx",
     duration: "xxxx",
     volume: 0.5,
     muted: false,
     paused: false,
     time: "Xxxxx",
     customData: {
      drmHeaders: {
        customdata: "xxxxxx",
      },
    
      drmLaUrl: "xxxx",
      drmKsName: "com.widevine.alpha",
     },
    });
    

    【讨论】:

      【解决方案2】:

      我想您是在问如何在自定义中将许可证 URL 从发送方客户端(设备“外壳”)发送到接收方(将接收投射请求并实际获取和播放流的设备)数据。

      自定义数据是一个 JSON 对象,您只需将许可证 url 放入其中。

      有两种常见的方式来传递这个自定义数据:

      • 使用 MediaInfo.Builder.setCustomData 方法将其包含在 MediaInfo 对象中
      • 将其包含在 MediaLoadOptions 数据中

      例如,查看 Google 文档中的 MediaInfo 示例并添加自定义数据:

      List tracks = new ArrayList();
      tracks.add(englishSubtitle);
      tracks.add(frenchSubtitle);
      tracks.add(frenchAudio);
      MediaInfo mediaInfo = MediaInfo.Builder(url)
        .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
        .setContentType(getContentType())
        .setMetadata(getMetadata())
        .setMediaTracks(tracks)
        .setCustomData(yourCustomData)    <--- This is the custom data
        .build();
      

      上面的“yourCustomData”是一个 JSON 对象,您可以创建并将数据添加到其中,在您的情况下是您的许可证服务器 URL:

      JSONObject yourCustomData = new JSONObject();
      try {
          yourCustomeData.put("licenseURL", "HTTPS://yourlicenseServerUrl.com");
      } catch (JSONException e) {
          // Add any error code you want here
          e.printStackTrace();
      }
      

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 1970-01-01
        • 1970-01-01
        • 2014-10-21
        • 2012-02-06
        • 2018-05-17
        • 2019-06-22
        • 1970-01-01
        • 2018-07-11
        相关资源
        最近更新 更多