【问题标题】:Setting HTTP Header for DRM license server authentication with Tizen AVPlay使用 Tizen AVPlay 为 DRM 许可证服务器身份验证设置 HTTP 标头
【发布时间】:2018-01-01 05:00:16
【问题描述】:

我正在使用 AVPlay 播放 DRM 内容。我需要为许可证 URL 设置 HTTP 标头。我该怎么做?

webapis.avplay.setDrm('PLAYREADY', 'SetProperties', angular.toJson({
    LicenseServer:entitlementData.LicenseURL,
    'X-AxDRM-Message':entitlementData.DRMToken
}));

我需要在 HTTP 标头中设置X-AxDRM-Message

【问题讨论】:

  • 嗨,你找到答案了吗?

标签: javascript tizen drm tizen-web-app tizen-tv


【解决方案1】:

您可能已经知道,angular.toJson() 和 JSON.stringify() 有一些显着的区别。

Difference between toJSON() and JSON.Stringify()

通过查看此 API 参考上的代码示例,似乎应该使用 JSON.stringify()。

http://developer.samsung.com/tv/develop/api-references/samsung-product-api-references/avplay-api

var drmParam = new Object();
drmParam.LicenseServer = "http://license.company.com";
drmParam.CustomData = "mycustom";
playerObj.setDrm("PLAYREADY", "SetProperties", JSON.stringify(drmParam));

您可以在您的源代码上尝试这种格式。

此外,本文档包含一些关于 HTTP 标头的讨论,虽然它是关于 Apple tvOS 但我猜你可能会用到。

Sending and Receiving AVPlayer HTTP Headers

【讨论】:

  • 好像不行,CustomData是指HTTP头吗?
  • CustomData == HTTP 标头?不能说。编辑了答案。
【解决方案2】:

你需要做的是设置参数:

const drmParam = {
          DeleteLicenseAfterUse: true,
          LicenseServer: uri,
          X-AxDRM-Message: : entitlementData.DRMToken
        };

然后您需要确保是这样的 JSON 对象:

const params = JSON.stringify(drmParam);

获得对象后,您将能够进行如下参数设置:

webapis.avplay.setDrm('PLAYREADY', 'SetProperties', params);

希望有帮助!

【讨论】:

    【解决方案3】:
    let DrmParam = {};
    
    DrmParam.LicenseServer = entitlementData.LicenseURL;
    DrmParam.HttpHeader = "X-AxDRM-Message:" + entitlementData.DRMToken;
    
    webapis.avplay.setDrm("PLAYREADY", "SetProperties", JSON.stringify(DrmParam));
    

    【讨论】:

    • 虽然这段代码可以回答问题,但最好解释一下如何解决问题,并提供代码作为示例或参考。仅代码的答案可能会令人困惑且缺乏上下文。
    • 在三星开发者网站上,它推荐这个。但目前尚不清楚如何使用它。而且我还要发送两个标题,但我不知道如何连接。有没有关于它的文档/经验? developer.samsung.com/tv/support/documentation-qa/…
    【解决方案4】:

    我知道如何将多个 Http 标头发送到 DRM 许可证服务器。如果要发送多个 http 头,必须用 \n 键分隔它们。

    你可以自己试试:

            var drmParam = {
                DeleteLicenseAfterUse: true,
                LicenseServer: licenseServerURL,
                HttpHeader: "Authorization:" + authValue + "\nMY-Ticket:" + ticketValue
            };
            webapis.avplay.setDrm("PLAYREADY", "SetProperties", JSON.stringify(drmParam));
    

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 2023-03-09
      • 1970-01-01
      • 2011-11-13
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      相关资源
      最近更新 更多