首页 > 解决方案 > 带有 Widevine DRM 的 Chromecast CAF

问题描述

我正在尝试创建一个与 DASH+WIDEVINE 兼容的 chromecast CAF 接收器。

CAF 文档:

const context = cast.framework.CastReceiverContext.getInstance();
const playbackConfig = new cast.framework.PlaybackConfig();
// Customize the license url for playback
playbackConfig.licenseUrl = 'http://widevine/yourLicenseServer';
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;
});

但是,我总是收到 DASH+WDV 视频错误 HLS_MANIFEST_MASTER 411。对于非 DRM 内容,我没有问题。

有人有与 DASH+WDV 配合使用的 chromecast 接收器吗?

非常感谢,

标签: chromecastdrmreceiverwidevine

解决方案


HLS_MANIFEST_MASTER建议您给它一个 HLS 流而不是 MPEG-DASH 流。因此,要么你给它一个 .m3u8 URL 而不是 .mpd URL,要么你特别强制 Cast SDK 使用 HLS 作为解析方法,而不是 MPEG-DASH。

请注意,这些是各自的 mime 类型:

  • HLSapplication/x-mpegurlapplication/vnd.apple.mpegurl
  • 破折号application/dash+xml

推荐阅读