HarmonyOS鸿蒙Next中AudioCapturer获取最小缓冲区大小返回-1,按照api文档传参,求助

HarmonyOS鸿蒙Next中AudioCapturer获取最小缓冲区大小返回-1,按照api文档传参,求助

AudioCapturer#getMinBufferSize(int sampleRate, int channelCount, int audioFormat)

调用代码是这样的:

```java
int ret = AudioCapturer.getMinBufferSize(AudioStreamInfo.SAMPLE_RATE_UNSPECIFIED,
    AudioStreamInfo.getChannelCount(AudioStreamInfo.ChannelMask.CHANNEL_IN_MONO),
    AudioStreamInfo.EncodingFormat.ENCODING_PCM_16BIT.getValue());

调试设备是HVD P40,获得ret一直是-1,求帮忙看看有啥问题


更多关于HarmonyOS鸿蒙Next中AudioCapturer获取最小缓冲区大小返回-1,按照api文档传参,求助的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

开发者你好,虚拟机上无法分配最小缓冲区,需要使用真机测试,谢谢你反馈

更多关于HarmonyOS鸿蒙Next中AudioCapturer获取最小缓冲区大小返回-1,按照api文档传参,求助的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发者你好,请提供完整的上下文代码。

请问你这边录音功能做出来了吗?

还没有…凑字数凑字数

那现在是什么情况?凑字数凑字数

找真机

开发者你好,您的问题已经为您转相关人员待处理中,有回复后我们会及时同步。

同时欢迎论坛开发小伙伴们互帮互助…

感谢您对开发者论坛的支持!!

在HarmonyOS鸿蒙Next中,AudioCapturer获取最小缓冲区大小返回-1,通常是由于参数配置不正确或设备不支持所请求的音频配置。AudioCapturergetMinBufferSize方法需要传入采样率、声道配置和音频格式等参数。如果这些参数与设备硬件不匹配,或者设备不支持所请求的配置,方法将返回-1。

首先,确保传入的采样率、声道配置和音频格式是设备支持的。可以通过AudioManagergetSupportedSamplingRatesgetSupportedChannelCountsgetSupportedAudioFormats方法查询设备支持的音频配置。

其次,检查AudioCapturer的初始化参数是否正确。AudioCapturer的初始化需要传入AudioStreamInfo对象,该对象包含音频流的配置信息。确保AudioStreamInfo中的参数与getMinBufferSize方法传入的参数一致。

最后,确认设备是否支持音频捕获功能。某些设备可能不支持音频捕获,或者当前音频资源被其他应用占用,导致getMinBufferSize返回-1。

如果以上步骤均无误,但仍返回-1,可能是系统或硬件层面的问题,需要进一步排查。

在HarmonyOS鸿蒙Next中,AudioCapturer获取最小缓冲区大小返回-1,通常表示参数配置有误或设备不支持。请检查以下内容:

  1. 参数配置:确保AudioCapturerOptions中的采样率、声道数、音频格式等参数与设备支持的配置一致。

  2. 权限:确认应用已获取ohos.permission.MICROPHONE权限。

  3. 设备支持:部分设备可能不支持某些音频配置,建议查阅设备规格或使用AudioManager查询支持的配置。

  4. 日志排查:查看系统日志,获取更多错误信息。

回到顶部