- 直接使用W3C媒体API:这是播放扁平(非ABR)内容时的合适方法。
- 使用W3C媒体API构建自定义JavaScript播放器:开发者可以通过直接集成相关的W3C媒体API来创建自己基于JavaScript的专有媒体播放器。
- 集成现有的JavaScript播放器库:有几种流行的JavaScript媒体播放器库可供选择,例如Shaka播放器、hls.js、dash.js和Bitmovin播放器。开发者可以选择整合其中一个现有播放器,这为底层的W3C媒体API提供了抽象功能。
- HTMLMediaElement
- 媒体源扩展(仅供英文版)
- 加密媒体扩展(仅供英文版)
URL模式
URL模式专为播放MP4和MP3文件等非自适应内容格式而设计。在此模式下,您可以直接使用HTMLMediaElement.src属性设置媒体源。
纯音频播放示例
以下示例演示了一个简单的纯音频播放实现。 打开您的src/App.tsx并用以下代码替换内容。- 使用
useRef()创建VideoPlayer实例 - 初始化播放器并将自动播放设置为true以便自动开始播放
- 使用src属性设置音频源URL
- 渲染带有指示音频播放的文本的简单用户界面
视频播放示例
以下示例演示了在URL模式下播放视频。- 使用
useRef()创建VideoPlayer的实例 - 实现
onSurfaceViewCreated回调,该回调可以:- 初始化视频播放器
- 使用
setSurfaceHandle()将播放器连接到表面 - 启用自动播放
- 设置视频源URL
- 实现
onSurfaceViewDestroyed回调,该回调可以:- 断开表面句柄的连接
- 取消播放器的初始化
- 清理播放器参考
- 使用生命周期回调渲染组件
- 表面管理:视频播放需要通过onSurfaceViewCreated和onSurfaceViewDestroyed回调来管理KeplerVideoSurfaceView生命周期
- 表面句柄:视频播放需要使用setSurfaceHandle() 将播放器连接到渲染表面
- 清理:视频播放需要对表面句柄进行适当的清理,并在表面被破坏时取消初始化
MSE模式
使用MSE(媒体源扩展)模式播放自适应比特率内容,例如HLS或DASH流。此模式需要集成基于JavaScript的媒体播放器库,用于处理自适应媒体流的下载和管理。选择媒体播放器
多个JavaScript媒体播放器库支持MSE,包括:- 开源:Shaka播放器、Dash.js、HLS.js、Bitmovin、Video.js
- 商业:Bitmovin和其他专有解决方案
使用Shaka播放器的MSE流媒体示例
以下示例演示了使用Shaka播放器流式播放DASH内容。- 配置内容:定义DASH清单URL和DRM设置(如果需要)
- 设置播放器选项:启用自适应比特率 (ABR) 流式传输
- 初始化视频播放器:在创建表面时创建和初始化VideoPlayer实例
- 集成Shaka播放器:创建ShakaPlayer实例并加载内容
- 管理字幕:为字幕渲染设置KeplerCaptionsView组件
- 处理清理:当表面被摧毁时,正确卸载播放器并取消资源初始化
构建和测试
使用Vega SDK构建应用并在设备或模拟器上运行。有关详细说明,请参阅以下主题:重要须知:URL模式与MSE模式
自适应流媒体不支持URL模式。尽管URL模式在有限的情况下可能适用于某些基本的自适应内容,但不能保证其行为,而且官方不支持自适应比特率直播。 仅将URL模式用于:- 非自适应内容(MP4、MP3文件)• 简单的播放场景
- 自适应比特率内容(HLS、DASH流)
- 受DRM保护的内容
- 直播
- 高级播放功能

