方案选择
如何选择音频播放开发方式
- AudioRenderer :用于音频输出的ArkTS/JS API,仅支持PCM格式,需要应用持续写入音频数据进行工作。应用可以在输入前添加数据预处理,如设定音频文件的采样率、位宽等,要求开发者具备音频处理的基础知识,适用于更专业、更多样化的媒体播放应用开发。
- AVPlayer :用于音频播放的ArkTS/JS API,集成了流媒体和本地资源解析、媒体资源解封装、音频解码和音频输出功能。可用于直接播放wav、mp3、m4a等格式的音频文件。
在播放音频方面用的最多的就是系统提供的AudioRenderer和AVPlayer。AudioRenderer是音频渲染器,用于播放PCM(Pulse Code Modulation)音频数据,相比AVPlayer而言,可以在输入前添加数据预处理,更适合有音频开发经验的开发者,以实现更灵活的播放功能。使用AudioRenderer播放音频涉及到AudioRenderer实例的创建、音频渲染参数的配置、渲染的开始与停止、资源的释放等。
##方案描述
使用AudioRenderer播放音频
配置音频渲染参数并创建AudioRenderer实例。在创建AudioRenderer实例之前可以先设置音频流信息AudioStreamInfo,音频流信息如下:
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| samplingRate | AudioSamplingRate | 是 | 音频文件的采样率。 |
| channels | AudioChannel | 是 | 音频文件的通道数。 |
| sampleFormat | AudioSampleFormat | 是 | 音频采样格式。 |
| encodingType | AudioEncodingType | 是 | 音频编码类型。 |
其中编码模式只支持PCM编码,所以代码里默认是ENCODING_TYPE_RAW。
然后是设置音频渲染器信息,音频渲染器信息如下:
| 名称 | 类型 | 必填 | 说明 |
| usage | StreamUsage | 是 | 音频流使用类型。 |
| rendererFlags | number | 是 | 音频文件的通道数。 |
其中rendererFlags,0代表普通音频渲染器,1代表低时延音频渲染器。ArkTS接口暂不支持低时延音频渲染器,所以默认为0。
let audioStreamInfo: audio.AudioStreamInfo = {
samplingRate: audio.AudioSamplingRate[this.samplingRate], // 采样率
channels: audio.AudioChannel[this.channels], // 通道
sampleFormat: audio.AudioSampleFormat[this.sampleFormat],

最低0.47元/天 解锁文章
1754

被折叠的 条评论
为什么被折叠?



