代码拉取完成,页面将自动刷新
本示例基于视频解码,通过计算音视频帧的延时进行音画同步适配,解决在蓝牙耳机播放等场景的音画不同步问题。开发者在实现解码播放视频功能时,加入音画同步模块,保持视频画面和音频同步播放,让用户在高时延场景下观看视频有更好的体验。
应用界面 | 播放展示 |
---|---|
├──entry/src/main/cpp // Native层
│ ├──capbilities // 能力接口和实现
│ │ ├──include // 能力接口
│ │ ├──AudioDecoder.cpp // 音频解码实现
│ │ ├──Demuxer.cpp // 解封装实现
│ │ └──VideoDecoder.cpp // 视频解码实现
│ ├──common // 公共模块
│ │ ├──dfx // 日志
│ │ ├──SampleCallback.cpp // 编解码回调实现
│ │ ├──SampleCallback.h // 编解码回调定义
│ │ └──SampleInfo.h // 功能实现公共类
│ ├──player // Native层
│ │ ├──Player.cpp // Native层播放功能调用逻辑的实现
│ │ ├──Player.h // Native层播放功能调用逻辑的接口
│ │ ├──PlayerNative.cpp // Native层播放的入口实现
│ │ └──PlayerNative.h // Native层播放的接口
│ ├──render // 送显模块接口和实现
│ │ ├──include // 送显模块接口
│ │ ├──EglCore.cpp // 送显参数设置
│ │ ├──PluginManager.cpp // 送显模块管理实现
│ │ └──PluginRender.cpp // 送显逻辑实现
│ ├──types // Native层暴露上来的接口
│ │ └──libplayer // 播放模块暴露给UI层的接口
│ └──CMakeLists.txt // 编译入口
├──ets // UI层
│ ├──common // 公共模块
│ │ └──CommonConstants.ets // 参数常量
│ ├──entryability // 应用的入口
│ │ └──EntryAbility.ets
│ ├──entrybackupability
│ │ └──EntryBackupAbility.ets
│ └──pages // EntryAbility 包含的页面
│ └──Index.ets // 首页/播放页面
├──resources // 用于存放应用所用到的资源文件
│ ├──base // 该目录下的资源文件会被赋予唯一的ID
│ │ ├──element // 用于存放字体和颜色
│ │ ├──media // 用于存放图片
│ │ └──profile // 应用入口首页
│ ├──en_US // 设备语言是美式英文时,优先匹配此目录下资源
│ └──zh_CN // 设备语言是简体中文时,优先匹配此目录下资源
└──module.json5 // 模块配置信息
1.本示例仅支持标准系统上运行,支持设备:手机。
2.本示例为Stage模型,支持API12版本SDK,SDK版本号(API Version 12 Release)。
3.本示例需要使用DevEco Studio版本号(DevEco Studio 5.0.0 Release)及以上版本才可编译运行。
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/BasicFeature/Media/AudioToVideoSync/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。