Videogular2为Azure DRM保护的内容

时间:2017-11-30 09:16:10

标签: azure cors azure-media-services videogular

我正在使用Videogular2进行天蓝色内容播放。在没有DRM的azure上托管的内容完美无缺。当我实现受DRM保护的内容时,具有令牌认证会产生CORS错误。从许可证服务器获取许可证时会引发错误。

以下是我的代码

  stream = {
          source: 'http://xxxxx.streaming.mediaservices.windows.net/xxxxxxx/abc512kb.ism/manifest(format=mpd-time-csf)',
          licenseServers: {
              'com.widevine.alpha': {
                  serverURL: 'https://xxxxxx.keydelivery.westindia.media.azure.net/Widevine/?KID=xxxxx-ef40-87ed-b348-xxxxxx'
              }
          },
          token: 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
      }

<video #media
        [vgMedia]="media"
       [vgDash]="stream.source"
       [vgDRMLicenseServer]="stream.licenseServers"
       [vgDRMToken]="stream.token"
       id="singleVideo"
       preload="auto" crossorigin
       >
</video>

从许可证服务器获取许可证时出现以下错误。

  

对预检请求的响应没有通过访问控制检查:   “访问控制 - 允许 - 来源”的价值&#39;响应中的标题必须   不是通配符&#39; *&#39;当请求的凭据模式是   &#39;包括&#39 ;.起源&#39; http://localhost:4300&#39;因此是不允许的   访问。由...发起的请求的凭据模式   XMLHttpRequest由withCredentials属性控制。

如果我使用chrome的disable-web-security运行它,那么我称之为完美无缺。

播放Azure Media中的内容时是否有人遇到此类问题。

2 个答案:

答案 0 :(得分:0)

Mandar - Azure媒体服务(AMS)来源设置了“访问控制 - 允许 - 来源”的价值。预检响应中的标题为通配符&#39; &#39;。这适用于大多数播放器,包括我们的Azure媒体播放器,Roku和JW等。从错误来看,似乎Videogular2不能与AMS原点URL一起使用,因为凭证模式设置为“include”,其dashjs中的XMLHttpRequest不允许使用通配符“”作为“&#39; Access-的值”控制允许来源”。

您是从单个域运行播放器吗?如果是,我们可以将请求设置为包含您的传入源域而不是通配符。通过microsoft dot com的dwgeo联系我,我们可以在您的帐户中启用该功能。感谢。

答案 1 :(得分:0)

我遇到了同样的问题。这是Videogular2源https://github.com/videogular/videogular2/blob/master/src/streaming/vg-dash/vg-dash.ts#L70

它在同一个域上工作正常,但对于不同的域,缺少Credentials = true。在第70行创建玩家后

this.dash = dashjs.MediaPlayer().create();

应该去这个

this.dash.setXHRWithCredentials(true);

我希望它可以提供帮助