在使用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);
}
由于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