适用于Vega的React Native W3C媒体API
Vega媒体播放器为Fire TV设备上的React Native应用带来了W3C(万维网联盟)媒体API的强大功能。您可以沿用网页开发中那些您已熟悉的标准,例如<video>元素和HTMLMediaElement。
Vega媒体播放器支持HTMLMediaElement,可实现基本媒体播放功能;支持媒体源扩展 (MSE),可用于自适应流媒体;还支持加密媒体扩展 (EME),以保护受DRM保护的内容。在Vega设备中,媒体播放器堆栈基于GStreamer框架运行,以实现硬件加速的解码和画面渲染功能。
以下是一些您可能已经熟悉的、我们额外支持的HTML5属性:
- 标准属性:
currentTime、duration、paused、volume - 标准方法:
play()、pause()、load() - 标准事件:
timeupdate、ended、error、loadedmetadata
网页开发到Vega开发的过渡
为了帮助您更好地理解,以下代码示例显示了一个在组件上播放视频的简单场景。
// HTML5网页
const video = document.querySelector("video");
video.src = "video.mp4";
video.play();
// Vega
const video = new VideoPlayer();
await video.initialize();
video.src = "video.mp4";
video.play();
格式兼容性
Vega媒体播放器支持以下媒体格式和编解码器。电视硬件可能存在某些依赖关系(例如,Dolby音频或4K播放),因此,在开始播放之前,应用需要检查输出设备的媒体功能,这样才能选择正确的编解码器进行播放
支持的格式:
- URL模式: MP4、MP3、MKV、FLV、OGG、FLAC
- MSE模式: HLS (.m3u8)、DASH (.mpd)、SmoothStreaming
支持的编解码器:
- 视频: H.264、H.265、VP8、VP9、AV1
- 音频: AAC、MP3、Dolby(AC3、eAC3、AC4)、Opus、FLAC
DRM支持:
- Widevine: L1(硬件)用于HD/4K,L3(软件)用于SD
- PlayReady: SL2000/3000(硬件)、SL150(软件)
选择您的播放器类型
您需要做出一个重要决策:根据您的内容和具体需求,挑选最合适的播放方案。
根据内容类型决定
┌─────────────────────────────────────────────────────────────────┐
│ 什么类型的内容? │
└───────────────────────────────┬─────────────────────────────────┘
│
┌─────────────▼─────────────┐
│ 简单文件 (MP4、MP3) ? │
│ 没有自适应流媒体? │
└─────────────┬─────────────┘
│ 是
┌─────▼─────┐
│ 使用URL │
│ 模式 │
│ (简单) │
└───────────┘
│ 否
┌───────────▼───────────┐
│ 自适应流媒体? │
│ (HLS、DASH、直播TV) │
└───────────┬───────────┘
│ 是
▼
查看MSE播放器选择
MSE播放器选择(如有必要)
对于自适应流媒体内容,您需要选择一个合适的JavaScript播放器。需要考虑的因素包括:流媒体类型(HLS、DASH或两者兼而有之)、DRM、直播内容、分析、开源软件与商业软件等等。本指南使用Shaka播放器,这是因为这种播放器能处理各种内容类型和场景。但是,您可以根据自己的特定要求选择其他兼容MSE的播放器(例如HLS.js、Dash.js或商业播放器)。
有关支持的播放器清单,请参阅“支持的库和服务”中的兼容Vega的媒体播放器。
相关主题
基础内容:
- 媒体播放器API参考 - 完整的API参考和方法文档
- 媒体播放器设置指南 - 详细的设置说明
- Shaka播放器集成 - 完成Shaka设置
- 媒体播放器演练 - 工作示例
高级主题:
参考资料:
- 媒体播放器API参考 - HTMLMediaElement、VideoPlayer和组件API
- 需求指南 - 技术规格
- 常见问题解答 - 常见问题和解决方案
Last updated: 2025年10月1日

