HarmonyOS 音频播放帧率控制

AudioRenderer中"writeData"回调帧率如何控制, 为什么录制和播放使用相同的参数, 播放的回调在100毫秒左右一次, 而录制在20毫秒左右, 这个是否有控制参数, 我们该如何处理? 我们需要播放的回调也控制在20毫秒?

HarmonyOS
2024-11-12 09:37:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

​播放的100ms左右一次回调是因为一次回调会向应用获取93ms的数据量。

播放控制在20毫秒:c接口的话可以在OH_AudioStreamBuilder_GenerateRenderer之前调用OH_AudioStreamBuilder_SetFrameSizeInCallback(OH_AudioStreamBuilder* builder, int32_t frameSize);frameSize是想设置的一次回调数据量的毫秒数和采样率算出来的采样点数

比如说48k资源,一毫秒是48个采样点,你想设成一次回调传入20ms的数据量,就把frameSize传为48 * 20 = 960。在ArkTS侧暂不支持调用。

采样率跟回调速率是没有关系的,采样率是跟你用的音源相关的,音频文件是多少k的采样率格式你就得设置多少的采样率。

一次回调写的数据量(写成定值的93ms时长对应的数据量)这个值现在在ArkTS接口里暂时是改不了的。​

分享
微博
QQ
微信
回复
2024-11-12 15:19:51
相关问题
HarmonyOS音频播放问题
416浏览 • 1回复 待解决
HarmonyOS 音频录制与播放
631浏览 • 1回复 待解决
HarmonyOS 音频后台播放问题
467浏览 • 1回复 待解决
HarmonyOS 音频播放相关问题咨询
184浏览 • 1回复 待解决
HarmonyOS 播放本地音频文件
211浏览 • 1回复 待解决
HarmonyOS实现后台播放音频
484浏览 • 1回复 待解决
HarmonyOS 音频播放设备的切换
246浏览 • 1回复 待解决
HarmonyOS 音频播放的缓存大小太大
228浏览 • 1回复 待解决
HarmonyOS 如何判断音频是否在播放
381浏览 • 1回复 待解决
SoundPool实现音频播放功能
1355浏览 • 1回复 待解决
基于AVPlayer音频后台播放
579浏览 • 1回复 待解决
OH _Audio播放音频问题
2125浏览 • 1回复 待解决
AVplayer开发音频播放功能
1213浏览 • 1回复 待解决
AudioCapturer录音+AudioRenderer播放音频
1300浏览 • 1回复 待解决
请提供HarmonyOS音频播放器实例代码
321浏览 • 0回复 待解决
HarmonyOS 获取页面帧率
128浏览 • 1回复 待解决
AVPlayer实现音频播放(c++侧)
1325浏览 • 1回复 待解决