PAG官网 | PAG动效

PAG官网 | PAG动效

  • 首页
  • 产品
  • 功能
  • 文档
  • 案例
  • CN
    EN
    English
    CN
    简体中文
  • GitHub
  • 论坛交流
  • 免费下载
  • Languages iconCN
    • EN

›移动端进阶

了解 PAG

  • PAG 简介
  • 常见问题

快速开始

  • 安装 PAGViewer
  • 安装 AE 导出插件
  • 导出 PAG 文件
  • SDK 快速接入

导出插件

  • 插件选项配置面板
  • 导出面板使用指南
  • BMP 预合成导出
  • PAG 填充模式
  • PAG 时间伸缩
  • 快捷键设置
  • 导出错误码说明
  • AE 导出检测规则
  • 文本制作规则
  • 添加文本背景
  • 如何导出音频
  • 手动安装导出插件

预览工具

  • 编辑预览效果
  • 查看 PAG 文件结构
  • 快捷键列表
  • 导出图片序列
  • 素材加密
  • 素材加水印
  • 切换 Beta 版本

性能优化

  • 使用性能监测面板
  • PAG 素材优化指南

移动端进阶

  • 常用 API 解读
  • UI 及列表场景播放优化
  • 占位图替换视频
  • 播放有声素材
  • 文本图层说明
  • 使用加密素材
  • 渲染导出视频
  • 企业版 SDK 鉴权

Web 进阶

  • SDK 安装
  • 加载 PAG 文件
  • 播放 PAG 文件
  • 平台特性说明
  • WebWorker 版本介绍

API 参考

  • API 文档

视频教程

  • PAG 使用流程
  • PAG 性能优化分享
  • PAGExporter 面板分享
  • PAG 线上答疑

资源下载

  • PAGViewer 下载
  • PAG 测试素材下载
  • PAG Demo 工程下载
  • 2022 音视频技术大会
  • PAG 转换工具下载
  • PAG 文件格式规范

TAVMedia

  • TAVMedia 简介
  • TAVMedia 快速入门
  • 常用 API 解读

其他

  • Lottie 迁移至 PAG
  • 专业词汇表

播放有声素材


PAG SDK 是一个特效渲染组件,专注于特效渲染,社区版不会处理音视频相关内容。如果需要音频播放的功能,可以使用 PAG 企业版。

包含 Movie 功能的 PAG 企业版(包名带有 movie 后缀)集成了音频读取与播放的能力,支持播放 PAG 文件中的内置音频和占位图填充进来的视频中的音频, 使用方可以直接使用 PAGView 播放,或者读取 PCM 音频数据自行处理。

如果导出含有音频的 PAG 文件可以参考 如何导出音频

音频播放组件 PAGView

企业版的 PAGView 已经集成了音频播放能力,支持播放 PAG 文件内置音频和占位图填充的视频文件中的音频。

PAGView 的详细文档参见: Android | iOS 。

获取音频数据

企业版的 PAGAudioReader 类提供了读取 PAGComposition 中的音频帧数据的接口,获取到为混合后的音频数据,即包含 PAG 文件 内置音频和占位图填充的视频文件中的音频,音频数据格式为 PCMSigned16。

使用范例

1、构建 PAGAudioReader 实例

代码示例

android:

// 获取指定音频参数的 reader 实例
int sampleRate = 48000;
int sampleCount = 1024;
int channels = 2;
PAGAudioReader reader = PAGAudioReader.Make(sampleRate, sampleCount, channels);

iOS:

// 获取指定音频参数的 reader 实例
NSInteger sampleRate = 48000;
NSInteger sampleCount = 1024;
NSInteger channels = 2;
CGFloat volume = 1.0f; // 0 ~ 1.0f
PAGAudioReader *reader = [PAGAudioReader MakeWithSampleRate:sampleRate sampleCount:sampleCount channels:channels volume:1.0f];

2、设置 PAGComposition 实例

代码示例

Android:

PAGAudioReader reader = PAGAudioReader.Make(sampleRate, sampleCount, channels);
PAGComposition composition = PAGFile.Load(getAssets(), selectedPAGFileName);
reader.setComposition(composition);

iOS:

PAGComposition *composition = [PAGFile Load:path];
[reader setComposition:composition];

3、seek(可选)

Android:

// seek 到第5秒的位置
long positionUs = 5_000_000;
reader.seek(positionUs);

iOS:

NSInteger positionUs = 5*1000*1000;
[reader seek:positionUs];

4、读取音频

通过 PAGAudioReader 的 readNextSample 接口可以读取一帧音频,同时移动到下一帧的位置;

读取一个 PAGComposition 实例中完整的音频数据,只需要循环调用 readNextSample,直到所有音频数据都读取完毕。

因为 composition 允许实时修改,当 composition 没有音频数据时,audioReader 仍然会返回音频帧,此时音频中 data 数据均为0。

代码示例:

Android:

if (reader.isEmpty()) {
    // 如果 reader.isEmpty() 返回 true,说明 composition 没有音频数据
    return;
}
// 循环读取音频数据,直到读取完毕
PAGAudioSample audioFrame;
while ((audioFrame = reader.readNextSample()) != null 
        && audioFrame.timestamp + audioFrame.duration < composition.duration()) {
    audioFrame = reader.readNextSample();
    playAudio(audioFrame);
}

iOS:

if ([reader isEmpty]) {
    // 如果 [reader isEmpty] 返回 true,说明 composition 没有音频数据
    return;
}
PAGAudioSample* audioFrame = nil;
while ((audioFrame = [reader readNextSample]) != null 
        && audioFrame.timestamp + audioFrame.duration < composition.duration) {
    audioFrame = reader.readNextSample();
    dealWithAudio(audioFrame);
}
← Video ReplacementText Layer Description →
  • 音频播放组件 PAGView
  • 获取音频数据
    • 使用范例
Address: Tencent Binhai Building, No. 33 Haitian Second Road, Nanshan District, Shenzhen, Guangdong Province, China.
TEL: 0755-86013388
QQ Group: 893379574
Copyright © 2018 - 2025 Tencent. All Rights Reserved.
Privacy Policy
公司地址:广东省深圳市南山区海天二路33号腾讯滨海大厦
联系电话:0755-86013388
QQ群:893379574
Copyright © 2018 - 2025 Tencent. All Rights Reserved.
隐私政策
Copyright © 2018 - 2025 Tencent. All Rights Reserved.
Address: Tencent Binhai Building, No. 33 Haitian Second Road, Nanshan District, Shenzhen, Guangdong Province, China.
TEL: 0755-86013388
QQ Group: 893379574
Privacy Policy
Copyright © 2018 - 2025 Tencent. All Rights Reserved.
公司地址:广东省深圳市南山区海天二路33号腾讯滨海大厦
联系电话:0755-86013388
QQ群:893379574
隐私政策