我正在使用Videogular2的蓝色内容播放。在没有DRM的天青上托管的内容工作得很好。在实现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>在从许可证服务器获取许可证时,我得到了以下错误。
对飞行前请求的响应不会通过访问控制检查:当请求的凭据模式为“include”时,响应中的“访问控制-允许-原产地”标题的值不能是通配符“*”。因此,“http://localhost:4300”源是不允许访问的。由XMLHttpRequest发起的请求的凭据模式由withCredentials属性控制。
如果我运行它的禁用网络安全的铬,然后我调用完美的工作。
有没有人在播放Azure Media的内容时面临这样的问题?
发布于 2017-11-30 23:58:14
Mandar - Azure Media Services (AMS)原产地将“访问控制-允许-原产地”标题的值设置为通配符。这对大多数玩家很好,包括我们的Azure媒体播放器,Roku和JW,以及其他。从错误来看,Videogular2似乎不适用于AMS源URL,因为当凭据模式设置为“包含”时,dashjs中的XMLHttpRequest不允许通配符“作为”“访问控制-允许-原产地”的值。
您是从单个域运行播放机吗?如果是,我们可以将请求设置为包含传入的源域,而不是通配符。联系我在dwgeo在微软的网站上,我们可以启用您的帐户的功能。谢谢。
发布于 2018-03-08 16:36:37
我也面临着同样的问题。下面是Videogular2源https://github.com/videogular/videogular2/blob/master/src/streaming/vg-dash/vg-dash.ts#L70
它可以很好地工作在相同的领域,但对于不同的领域,withCredentials=true是缺失的。在第70行创建球员之后
this.dash = dashjs.MediaPlayer().create();该走了
this.dash.setXHRWithCredentials(true);我希望这能帮上忙
https://stackoverflow.com/questions/47569726
复制相似问题