Azure Media Player无法在iPhone

时间:2016-11-09 11:54:51

标签: c# iphone azure encryption azure-media-services

我们在iPhone 6(A1586)上使用AES(使用JWT令牌身份验证)视频播放受保护的问题。以下错误拖欠:

  

0x50300000 - 视频播放因腐败问题而中止   或者因为视频使用了浏览器不支持的功能

当禁用加密时,同一视频播放没有任何问题。

问题是复制Azure Media Player团队发布的此类场景的示例无法正常工作并失败并出现同样的错误!它可以在这里找到:https://ampdemo.azureedge.net/。该样本命名如下:

  

AES(JWT令牌) - 按需[钢铁预告片]

如何通过iPhone上的Azure媒体服务/播放器进行受保护的视频流?是否支持场景?

以下是设置交付政策的相关代码:

    deliveryPolicy = context.AssetDeliveryPolicies.Create(
        DeliveryPolicyName,
        AssetDeliveryPolicyType.DynamicEnvelopeEncryption,
        AssetDeliveryProtocol.SmoothStreaming | AssetDeliveryProtocol.Dash | AssetDeliveryProtocol.HLS,
        new Dictionary<AssetDeliveryPolicyConfigurationKey, string>
        {
            { AssetDeliveryPolicyConfigurationKey.EnvelopeKeyAcquisitionUrl, contentKey.GetKeyDeliveryUrl(ContentKeyDeliveryType.BaselineHttp).ToString() }
        }
    );

1 个答案:

答案 0 :(得分:3)

在Azure Media Player“已知问题”列表中找到了这个确切的场景:https://amp.azure.net/libs/amp/latest/docs/Known_Issues.html

  

AES和受限制的令牌内容无法使用iOS及更早版本进行播放   Android设备。为了实现这种情况,代理必须是   已添加到您的服务中。

本文介绍了Azure团队提出的此解决方法:https://azure.microsoft.com/en-us/blog/how-to-make-token-authorized-aes-encrypted-hls-stream-working-in-safari/。我还没有亲自测试过它。

workaround

更新。解决方法在稍作更改后仍然有效 - 第二级HLS播放列表的网址编码存在问题。这是完整的WebAPI 2控制器代码,为我提供了诀窍:http://pastebin.com/kq7Zfw88