as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

媒体播放器常见问题解答

媒体播放器常见问题解答

常见问题解答

  • 此版本的W3C媒体API附加程序支持哪些流媒体格式?
    • 使用MSE/EME API通过Shaka播放器进行HLS和DASH自适应流媒体播放。
    • 通过HTMLMediaElement.src属性播放非自适应流媒体格式(MP4和MP3)。
  • 是否支持媒体焦点管理?
    • 是,无论是在模拟器上还是在运行Vega OS的Fire TV Stick设备上均支持。方向键和直接播放/暂停/快进/倒回按钮适用于传输控制。
  • 该应用是否能实现自己的媒体控件图形用户界面?
    • 是,应用可以实现自定义媒体控件图形用户界面并调用API进行播放、暂停和搜索,如下所示。

      已复制到剪贴板。

      video.play(); // 恢复播放
      video.pause(); // 暂停播放
      video.currentTime  = <seek position in seconds>; // 搜索到X.Y秒之类的位置
      
  • 同一个DRM密钥可以重复用于音频和视频流吗?
    • 出于安全原因,仅当视频安全要求允许解密到非安全内存时,我们才支持对音频和视频使用相同的CDK,例如: Widevine等同于L3的要求: SW_SECURE_CRYPTO、SW_SECURE_DECODE,甚至包括允许同时使用SW_SECURE_DECODE的HW_SECURE_CRYPTO。PlayReady: SL150 FairPlay: 不支持。
  • 如果对L1(即高清内容)视频URI使用相同的DRM密钥,会发生什么?
    • 存在HW_SECURE_ALL限制(又名Widevine的L1、PlayReady的SL2000/3000,Fairplay仅在此模式下运行)的情况下,我们可以支持所有视频变体共享相同的CDK。在这种情况下,音频必须使用不同的CDK。
  • Shaka播放器中有等同于使用相同密钥的ExoPlayer的multiSession等效物吗?
    • 在DRM中,可以通过两种方式请求和管理CDK:
      1. 每个DRM会话处理一个CDK。这意味着,如果媒体资产的音频和视频均经过加密,则即使客户端应用共享相同的CDK,也需要为音频和视频创建单独的DRM会话。这意味着单个播放会话将进行多次许可证交换。
      2. 使用单个DRM会话处理所有CDK。ExoPlayer文档指出,这是更好的方法,因为它避免了多次许可证交换。
    • Shaka播放器不提供配置选项来选择使用上述哪一种方法,而ExoPlayer则通过其Multi-session(多会话)旋钮来提供选择。第二个选项是ExoPlayer的默认模式。
  • 如何解决Shaka播放器DRM许可证HTTP请求失败并出现DRM_LICENSE_REQUEST_FAILED错误的问题。

    当Shaka播放器出现DRM LICENSE_REQUEST_FAILED (6007) 错误时,可能是由于某些服务器无法解析输入请求所致。要排除此问题,请在HTTP请求中附加“content-type”标头,如以下示例代码所示。

    已复制到剪贴板。

      const netEngine = this.player.getNetworkingEngine();
    
      const filter = (type : shaka.net.NetworkingEngine.RequestType, request : shaka.extern.Request) :void => {
          if (type === shaka.net.NetworkingEngine.RequestType.LICENSE) {
          console.log("为许可证请求附加HTTP标头信息");
    
          request.headers["content-type"] = "application/octet-stream";
          /* 如果有其他客户标头。
          request.headers["标头"] = "数据";
          */
          }
      };
    
  • Vega支持哪些基于JS的播放器?

    Vega支持Shaka播放器、Hls.js和DASH.js(开源)以及Bitmovin、THEOPlayer和Brightcove(专有)。亚马逊发布补丁,将Shaka播放器Hls.jsDASH.js移植到Vega。

  • 亚马逊会为每个新版本的Shaka播放器发布补丁吗?

    Vega支持W3C媒体API。Shaka播放器用于演示此API的用法。为此,我们会为Shaka播放器发布必要的补丁。您可以使用该API创建自己的播放器。您可以自由选择任何开源(Shaka播放器、HLS.js、DASH.js等)JS播放器或任何专有播放器,比如Bitmovin、TheoPlayer等。

    Shaka播放器在持续不断地更新。您可以根据需要选择任何Shaka播放器版本。有关已发布补丁的Shaka播放器最新版本的信息,请参阅使用Shaka播放器播放自适应内容 (HLS/DASH)。开发者可以参考我们发布的补丁并进行移植(如果需要)。如果您需要Shaka播放器的某个特定版本且我们尚未提供该版本,可以参考我们提供的补丁,并将其移植到您需要的播放器版本。如果您在使用W3C API时遇到任何问题,请及时反馈,我们将协助您解决问题。请注意,我们并未保证会为Shaka播放器的每一个新版本都发布补丁。

  • Shaka播放器补丁遵循什么许可协议?

    Shaka播放器补丁遵循Apache License 2.0协议。

  • W3C媒体API支持哪些音频/视频编解码器?

    W3C媒体API支持流媒体使用案例中使用的流行音频和视频编解码器,例如用于音频的Dolby Audio(AC3、eAC3、AC4、EC3_JOC)、AAC(LC、AAC+和eAAC+)、MP3、Opus、FLAC和Vorbis,以及用于视频的H.264、H.265、VP8、VP9、MPEG4和AV1。

  • W3C媒体API支持哪些DRM架构?

    W3C媒体API支持Widevine (L1) 和PlayReady (SL3000) 等DRM架构。

  • 是否支持服务器端插入广告?

    支持,前提是主内容→广告和广告→主内容切换时,编解码器类型没有变化。否则不支持。

  • 不同的媒体播放使用案例需要哪些权限?

    下面列出了媒体播放使用案例所需的一些常见权限。根据您的使用案例,缺少权限可能导致无法播放或显示黑屏。

    已复制到剪贴板。

      [offers][[offers.service]]
      id = "com.amazon.gipc.uuid.*" # GIPC SR所必需
      [[wants.service]]
      id = "com.amazon.gipc.uuid." 
      [[wants.service]]
      id = "com.amazon.drm.key"  # 播放DRM视频所必需
      [[wants.service]]
      id = "com.amazon.drm.crypto" # 播放DRM视频所必需
      [[needs.privilege]]
      id = "com.amazon.privilege.security.file-sharing" # 播放DRM视频所必需
      [[needs.privilege]]
      id="com.amazon.media.secureplayback" # 播放DRM视频所必需
      [[wants.service]]
      id = "com.amazon.mediametrics.service"
      [[wants.service]]
      id = "com.amazon.media.server" # 连接媒体播放器/媒体转换器所必需
      [[wants.service]]
      id = "com.amazon.mediabuffer.service"
      [[wants.service]]
      id = "com.amazon.mediatransform.service"
      [[wants.service]]
      id = "com.amazon.media.playersession.service" # 连接媒体控制所必需
      [[wants.service]] 
      id = "com.amazon.inputd.service"  # 遥控器按钮事件所必需
      [[wants.service]] 
      id = "com.amazon.inputmethod.service"
      [[wants.service]]
      id = "com.amazon.audio.stream" # 使用音频流所必需
      [[wants.service]]
      id = "com.amazon.audio.control"  # 使用音量控件和其他控件所必需
    
  • Shaka播放器中无法播放HLS MPEG2TS内容的直播内容。

    启用顺序播放模式:

    this.player.configure('manifest.hls.sequenceMode', true)

    对MPEG2 TS流,建议使用启用源缓冲区的顺序播放模式操作。

  • 某些WV L1视频播放失败。

    所有亚马逊平台都不支持音频的Widevine L1(安全路径)。音频应使用非安全路径,而视频可以使用安全路径。将multikey=true附加到URL,以便为每条曲目使用单独的密钥。

  • 支持哪些隐藏式字幕/字幕格式?

    W3C媒体API支持CEA 608、CEA 708、TTML、WebVTT和SRT格式的带内和带外隐藏式字幕和字幕。应用能够根据语言选择隐藏式字幕和字幕。URL和MSE模式播放支持隐藏式字幕/字幕。

  • 如何实现清单内字幕?

    有关清单内字幕的信息,请参阅知识库文章:隐藏式字幕 (CC) 和字幕(仅提供英文版)。

  • 如何禁用Shaka播放器的内嵌字幕(在媒体片段内)解析功能?

    W3C媒体API现在支持CEA608/708字幕解码。这是在Vega应用中解析字幕的首选方式。要禁用Shaka播放器的内嵌字幕解析功能,请取消注册媒体片段字幕解析器。

    已复制到剪贴板。

      shaka.media.ClosedCaptionParser.unregisterParser('video/mp4');
      shaka.media.ClosedCaptionParser.unregisterParser('video/mp2t'); 
    
  • 如何实现客户端广告插入?

    有关客户端广告插入的信息,请参阅知识库文章:客户端广告插入 (CSAI) 示例代码(仅提供英文版)。

  • 使用Widevine L1或PlayReady SL2000/3000时,是否支持音频解密?

    受硬件保护的内存缓冲区不支持音频解密,这意味着音频稳健性值HW_SECURE_ALL不受支持。要进行音频和视频解密与解码,请使用MediaKeys对象。

    使用requestMediaKeySystemAccess(...) 请求MediaKeySystemAccess对象时,请确保正确设置了MediaKeySystemConfiguration字典中audioCapabilitiesvideoCapabilitiesrobustness成员。例如,如果视频对于Widevine必须是安全的,请使用'robustness' : 'HW_SECURE_ALL';对于音频,请始终使用'robustness' : 'SW_SECURE_CRYPTO'。这样可确保使用受硬件保护的缓冲区解密视频数据,而使用非安全缓冲区解密音频数据。


Last updated: 2025年9月30日