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接口实现外挂字幕播放功能。主要流程如下:
- 字幕源添加:通过
OH_ResourceManager_OpenRawFile获取rawfile中字幕文件的文件描述符,使用OH_AVPlayer_AddFdSubtitleSource接口将字幕添加到播放器。 - 字幕回调监听:注册
OH_AVPlayer_SetOnInfoCallback信息回调,监听AV_INFO_TYPE_SUBTITLE_UPDATE类型事件,在回调中通过OH_AVFormat_GetStringValue获取字幕文本内容。 - 字幕显示:Native层通过NAPI将字幕文本传递给ArkTS前端,前端在XComponent视频播放界面上叠加Text组件显示字幕。
相关权限
不涉及
依赖
不涉及
约束和限制
-
本示例支持标准系统上运行,支持设备:RK3568;
-
本示例支持API23版本SDK,版本号:6.1.0.830;
-
本示例已支持使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
