You need to enable JavaScript to run this app.
导航
快速开始
最近更新时间:2025.04.02 16:40:01首次发布时间:2024.08.16 14:11:59
我的收藏
有用
有用
无用
无用

本文为您介绍如何将 HarmonyOS NEXT 播放器 SDK 集成至您的项目中并以最简单快捷的方式让视频播放起来。

开发环境

  • 开发环境:DevEco Studio(推荐使用最新版本)
  • 兼容的最低 SDK 版本:"compatibleSdkVersion": "5.0.0(12)"
  • ABI 兼容性:架构要求 arm64

获取 License

视频点播通过 License 管理播放器 SDK 及其增值服务的使用权限和时间。在项目测试阶段,您可以在视频点播控制台申请免费的测试 License。您需完成以下操作:

注意

测试 License 仅限项目测试阶段使用,不可续期。测试 License 到期会导致鉴权失败,进而影响业务的正常使用。项目上线前,请升级至正式 License

集成 SDK

步骤 1:添加仓库

在项目根目录下创建 .ohpmrc 文件并配置 OpenHarmony 三方库中心仓和火山引擎仓库地址。

registry=https://ohpm.openharmony.cn/ohpm/,https://artifact.bytedance.com/repository/byted-ohpm/

示意图如下:

步骤 2:添加 SDK 依赖

entry 下的 oh-package.json5 中添加 SDK 依赖:

说明

请参见发布历史获取 SDK 最新版本号。

{
  "name": "entry",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "",
  "dependencies": {
     // 将 xxx 替换成最新版本号
    "@simplayer/simkit_api": "xxx",
  }
}

示意图如下:

步骤 3:声明权限

enrty 下的 module.json5 文件中声明权限:

"requestPermissions": [
  {
    // 网络权限,建议添加
    "name": "ohos.permission.INTERNET"
  },
  {
    // 获取 WIFI 信息,如获取 mac,建议添加
    "name": "ohos.permission.GET_WIFI_INFO"
  },
  { 
    // 获取网络信息,建议添加
    "name": "ohos.permission.GET_NETWORK_INFO"
  },
  {
    // 资产持久化,建议添加
    "name": "ohos.permission.STORE_PERSISTENT_DATA"
  },
],

开始播放

步骤 1:开启日志调试

初始化播放器 SDK 之前,开启日志,便于调试和排查问题。

注意

线上版本请务必关闭日志,减少性能开销。

VodEnv.openLog()

步骤 2:初始化 SDK 并配置 License

初始化 SDK 并配置 License 文件。这是全局接口,app 生命周期内仅需调用一次。

注意

License 文件需由应用服务端下发,定期更新,否则 License 过期后您将无法使用播放器 SDK。更多信息,请见如何处理 License 相关错误?

// 初始化 applog,需传入您在视频点播控制台获取的 App ID
ApplogWrapper.intApplog(getContext(), 'your app id')
// 初始化 license 模块
VodEnv.init()
// 详见本文获取 License 部分
VodEnv.addLicenseFile('{"Signature":"A1VA/mZ63eEUKLZEs4mzMa8xLVqUHkEzeUdC........')
// 初始化 SDK
SimKitService.instance().init(new SimKitInitModel() ,getContext());

步骤 3:创建播放器

this.simPlayer = SimKitService.instance().createSimPlayer();

步骤 4:构造播放源

播放器 SDK 支持设置 Vid 和 DirectUrl 播放源。

  • Vid 播放源:如果您已将视频上传至火山引擎视频点播服务,可使用 Vid 方式播放视频。您需要设置 VidPlayAuthToken 参数。这两个参数是由应用服务端下发给客户端。详情请见通过临时播放 Token 播放

    let vid = "your vid"; // appServer 下发的 videoId
    let playAuthToken = "your video id's play auth token"; // appServer 下发的临时播放 Token
    // 构造播放源
    let dataSource = new VidSource(vid, playAuthToken)
    // 使用播放源播放
    this.simPlayer.play(dataSource);
    
  • DirectUrl 播放源:如使用 DirectUrl 播放源,您需要将播放地址设置给播放器。播放地址可以是第三方点播地址或火山引擎视频点播服务生成的播放地址。此外,你还必须设置以下参数:

    • vid:播放源唯一标识,必须与视频源一一对应。vid 可以是您自己的视频管理系统中的唯一标识,也可以在 App 层自行生成一个 ID。此 ID 会用于播放器 SDK 的日志上报、预渲染等功能中。
    • fileHash:作为缓存 key 使用,需能和视频资源文件一一对应,不带特殊字符,能作为文件名。可使用 URL 的 MD5 作为缓存 key。
    // 视频源与 vid 必须一一对应
    let vid = "your vid";
    // 视频 url
    let url = "http://www.example.com/h264.mp4";
    // 播放源唯一标识,与视频源一一对应,如 url 的 MD5 
    let fileHash = getMd5(url);
    
    // 构造播放源
    let videoInfo = new VideoInfo();
    videoInfo.urls = [url]
    videoInfo.fileHash = fileHash
    
    let dataSource = new VideoModel();
    dataSource.videoInfos = [videoInfo];
    dataSource.vid = vid;
    
    // 使用播放源播放
    this.simPlayer.play(dataSource);
    

步骤 5:构造视图控件

build() {
  Stack() {
    // 构造视图控件并传入播放器和播放源
    SimVideoView({
      playRequest: this.dataSource,
      simPlayer: this.simPlayer,
    })
      .width('100%')
      .height('100%')
  }
  .width('100%')
  .height('100%')
}

步骤 6:播放视频

调用 play 开始播放。SDK 默认会边播边缓存。

this.simPlayer.play(this.dataSource, PlayOptions.create()
  .setEnableMdl(true));

说明

HLS 视频目前不支持边播边缓存。播放 HLS 视频时,需将 setEnableMdl 设为 false

步骤 7:释放播放器

this.simPlayer.release(this.dataSource.getVid())

后续操作

参考以下文档实现播放器 SDK 的基础功能和进阶功能: