AVPlayerNDKSubtitle

介绍

本示例为媒体->Media Kit(媒体服务)->使用AVPlayer播放外挂字幕(C/C++) 的配套示例工程。

本示例展示了如何使用AVPlayer组件播放外挂字幕。

效果预览

播放效果

工程目录

AVPlayerNDKSubtitle
entry/src/main/ets/
└── pages
    └── Index.ets (播放界面)
entry/src/main/
├── cpp
│   ├── types
│   │   └── libentry
│   │       └── Index.d.ts (NDK函数对应的js映射)
│   ├── CMakeLists.txt (CMake脚本)
│   └── napi_init.cpp (NDK函数)
└── resources
    ├── base
    │   ├── element
    │   │   ├── color.json
    │   │   ├── float.json
    │   │   └── string.json
    │   └── media
    │       ├── ic_video_play.svg  (播放键图片资源)
    │       └── ic_video_pause.svg (暂停键图片资源)
    └── rawfile
        ├── subtitle.srt (字幕资源)
        └── test1.mp4 (视频资源)
entry/src/ohosTest/ets/
└── test
    ├── Ability.test.ets (UI测试代码)
    └── List.test.ets (测试套件列表)

具体实现

本示例使用AVPlayer Native API接口实现外挂字幕播放功能。主要流程如下:

  1. 字幕源添加:通过OH_ResourceManager_OpenRawFile获取rawfile中字幕文件的文件描述符,使用OH_AVPlayer_AddFdSubtitleSource接口将字幕添加到播放器。
  2. 字幕回调监听:注册OH_AVPlayer_SetOnInfoCallback信息回调,监听AV_INFO_TYPE_SUBTITLE_UPDATE类型事件,在回调中通过OH_AVFormat_GetStringValue获取字幕文本内容。
  3. 字幕显示:Native层通过NAPI将字幕文本传递给ArkTS前端,前端在XComponent视频播放界面上叠加Text组件显示字幕。

相关权限

不涉及

依赖

不涉及

约束和限制

  1. 本示例支持标准系统上运行,支持设备:RK3568;

  2. 本示例支持API23版本SDK,版本号:6.1.0.830;

  3. 本示例已支持使DevEco Studio 6.1.0 Release (构建版本:6.1.0.830,构建 2026年4月20日)编译运行

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/DocsSample/Media/AVPlayer/AVPlayerNDKSubtitle/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
git pull origin master