HarmonyOS 使用OPENSL ES播放音频发现bufQueueState.count一直为1没有变化?

在使用OPENSL ES播放音频,其中需要获取bufQueueState.count来计算延时,但是发现一直是1,我设置的最大是6.

SLOHBufferQueueState bufQueueState = {0};
SLresult slRet = (*pcmBufferQueue)->GetState(pcmBufferQueue, &bufQueueState);
if (slRet == SL_RESULT_SUCCESS) {
  LogD("YTAudioDeviceOH-haveSpace-count: %{public}d", bufQueueState.count);
}
阅读 666
1 个回答

由于OpenSL ES无法满足音频系统的能力拓展,建议使用OHAudio替代OpenSL ES开发音频业务。

如果您已经使用OpenSL ES开发,建议您切换到OHAudio,参考文档:

● 差异介绍:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/replace-opensles-by-ohaudio-0000001816916914

● 音频播放功能:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/using-opensl-es-for-playback-0000001863796489

● 音频录制功能:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/using-opensl-es-for-recording-0000001817076686

如果您是初始开发应用,建议您直接使用OHAudio开发,参考文档:

● 音频播放功能:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/using-ohaudio-for-playback-0000001820879953

● 音频录制功能:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/using-ohaudio-for-recording-0000001820999941

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题