harmony 鸿蒙native_audiocapturer.h

  • 2025-06-12
  • 浏览 (6)

native_audiocapturer.h

概述

声明输入类型的音频流相关接口。

引用文件:

库: libohaudio.so

系统能力: SystemCapability.Multimedia.Audio.Core

起始版本: 10

相关模块: OHAudio

汇总

函数

|名称|typedef关键字|描述| |–|–|–| |OH_AudioStream_Result OH_AudioCapturer_Release(OH_AudioCapturer* capturer)|-|释放输入音频流。| |OH_AudioStream_Result OH_AudioCapturer_Start(OH_AudioCapturer* capturer)|-|开始获取音频数据。| |OH_AudioStream_Result OH_AudioCapturer_Pause(OH_AudioCapturer* capturer)|-|暂停输入音频流。| |OH_AudioStream_Result OH_AudioCapturer_Stop(OH_AudioCapturer* capturer)|-|停止输入音频流。| |OH_AudioStream_Result OH_AudioCapturer_Flush(OH_AudioCapturer* capturer)|-|丢弃获取的音频数据。| |OH_AudioStream_Result OH_AudioCapturer_GetCurrentState(OH_AudioCapturer* capturer, OH_AudioStream_State* state)|-|查询当前音频流状态。| |OH_AudioStream_Result OH_AudioCapturer_GetLatencyMode(OH_AudioCapturer* capturer,OH_AudioStream_LatencyMode* latencyMode)|-|查询当前音频流时延模式。| |OH_AudioStream_Result OH_AudioCapturer_GetStreamId(OH_AudioCapturer* capturer, uint32_t* streamId)|-|查询当前输入音频流ID。| |OH_AudioStream_Result OH_AudioCapturer_GetSamplingRate(OH_AudioCapturer* capturer, int32_t* rate)|-|查询当前输入音频流采样率。| |OH_AudioStream_Result OH_AudioCapturer_GetChannelCount(OH_AudioCapturer* capturer, int32_t* channelCount)|-|查询当前音频流通道数。| |OH_AudioStream_Result OH_AudioCapturer_GetSampleFormat(OH_AudioCapturer* capturer,OH_AudioStream_SampleFormat* sampleFormat)|-|查询当前输入音频流采样格式。| |OH_AudioStream_Result OH_AudioCapturer_GetEncodingType(OH_AudioCapturer* capturer,OH_AudioStream_EncodingType* encodingType)|-|查询当前音频流编码类型。| |OH_AudioStream_Result OH_AudioCapturer_GetCapturerInfo(OH_AudioCapturer* capturer,OH_AudioStream_SourceType* sourceType)|-|查询当前音频流工作场景类型。| |OH_AudioStream_Result OH_AudioCapturer_GetFrameSizeInCallback(OH_AudioCapturer* capturer,int32_t* frameSize)|-|在回调中查询帧大小,它是每次回调返回的缓冲区的固定长度。| |OH_AudioStream_Result OH_AudioCapturer_GetTimestamp(OH_AudioCapturer* capturer, clockid_t clockId,int64_t* framePosition, int64_t* timestamp)|-|获取输入音频流时间戳和位置信息。
该接口可以获取到音频通道实际录制位置(framePosition)以及录制到该位置时候的时间戳(timestamp),时间戳单位为纳秒。| |OH_AudioStream_Result OH_AudioCapturer_GetFramesRead(OH_AudioCapturer* capturer, int64_t* frames)|-|查询自创建流以来已读取的帧数。| |OH_AudioStream_Result OH_AudioCapturer_GetOverflowCount(OH_AudioCapturer* capturer, uint32_t* count)|-|查询当前录制音频流过载数。| |typedef void (*OH_AudioCapturer_OnReadDataCallback)(OH_AudioCapturer* capturer, void* userData, void* audioData,int32_t audioDataSize)|OH_AudioCapturer_OnReadDataCallback|读取音频数据的回调函数。| |typedef void (*OH_AudioCapturer_OnDeviceChangeCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioDeviceDescriptorArray* deviceArray)|OH_AudioCapturer_OnDeviceChangeCallback|音频录制流的设备变化事件回调函数。| |typedef void (*OH_AudioCapturer_OnInterruptCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)|OH_AudioCapturer_OnInterruptCallback|音频录制流的中断事件回调函数。| |typedef void (*OH_AudioCapturer_OnErrorCallback)(OH_AudioCapturer* renderer, void* userData,OH_AudioStream_Result error)|OH_AudioCapturer_OnErrorCallback|音频录制流的错误事件回调函数。|

函数说明

OH_AudioCapturer_Release()

OH_AudioStream_Result OH_AudioCapturer_Release(OH_AudioCapturer* capturer)

描述

释放输入音频流。

需要权限: ohos.permission.MICROPHONE

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。
AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。|

OH_AudioCapturer_Start()

OH_AudioStream_Result OH_AudioCapturer_Start(OH_AudioCapturer* capturer)

描述

开始获取音频数据。

需要权限: ohos.permission.MICROPHONE

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。
AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。|

OH_AudioCapturer_Pause()

OH_AudioStream_Result OH_AudioCapturer_Pause(OH_AudioCapturer* capturer)

描述

暂停输入音频流。

需要权限: ohos.permission.MICROPHONE

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。
AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。|

OH_AudioCapturer_Stop()

OH_AudioStream_Result OH_AudioCapturer_Stop(OH_AudioCapturer* capturer)

描述

停止输入音频流。

需要权限: ohos.permission.MICROPHONE

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。
AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。|

OH_AudioCapturer_Flush()

OH_AudioStream_Result OH_AudioCapturer_Flush(OH_AudioCapturer* capturer)

描述

丢弃获取的音频数据。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。
AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。|

OH_AudioCapturer_GetCurrentState()

OH_AudioStream_Result OH_AudioCapturer_GetCurrentState(OH_AudioCapturer* capturer, OH_AudioStream_State* state)

描述

查询当前音频流状态。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |OH_AudioStream_State* state|指向一个用来接收音频流状态的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetLatencyMode()

OH_AudioStream_Result OH_AudioCapturer_GetLatencyMode(OH_AudioCapturer* capturer,OH_AudioStream_LatencyMode* latencyMode)

描述

查询当前音频流时延模式。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |OH_AudioStream_LatencyMode* latencyMode|指向一个用来接收音频流时延模式的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetStreamId()

OH_AudioStream_Result OH_AudioCapturer_GetStreamId(OH_AudioCapturer* capturer, uint32_t* streamId)

描述

查询当前输入音频流ID。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |uint32_t* streamId|指向一个用来接收音频流ID的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetSamplingRate()

OH_AudioStream_Result OH_AudioCapturer_GetSamplingRate(OH_AudioCapturer* capturer, int32_t* rate)

描述

查询当前输入音频流采样率。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |int32_t* rate|指向一个用来接收音频流采样率的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetChannelCount()

OH_AudioStream_Result OH_AudioCapturer_GetChannelCount(OH_AudioCapturer* capturer, int32_t* channelCount)

描述

查询当前音频流通道数。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |int32_t* channelCount|指向一个用来接收音频流通道数的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetSampleFormat()

OH_AudioStream_Result OH_AudioCapturer_GetSampleFormat(OH_AudioCapturer* capturer,OH_AudioStream_SampleFormat* sampleFormat)

描述

查询当前输入音频流采样格式。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |OH_AudioStream_SampleFormat* sampleFormat|指向一个用来接收音频流采样格式的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetEncodingType()

OH_AudioStream_Result OH_AudioCapturer_GetEncodingType(OH_AudioCapturer* capturer,OH_AudioStream_EncodingType* encodingType)

描述

查询当前音频流编码类型。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |OH_AudioStream_EncodingType* encodingType|指向一个用来接收音频流编码类型的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetCapturerInfo()

OH_AudioStream_Result OH_AudioCapturer_GetCapturerInfo(OH_AudioCapturer* capturer,OH_AudioStream_SourceType* sourceType)

描述

查询当前音频流工作场景类型。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |OH_AudioStream_SourceType* sourceType|指向一个用来接收输入类型音频流的工作场景的变量。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetFrameSizeInCallback()

OH_AudioStream_Result OH_AudioCapturer_GetFrameSizeInCallback(OH_AudioCapturer* capturer,int32_t* frameSize)

描述

在回调中查询帧大小,它是每次回调返回的缓冲区的固定长度。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |int32_t* frameSize|指向将为帧大小设置的变量的指针。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。
AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。|

OH_AudioCapturer_GetTimestamp()

OH_AudioStream_Result OH_AudioCapturer_GetTimestamp(OH_AudioCapturer* capturer, clockid_t clockId,int64_t* framePosition, int64_t* timestamp)

描述

获取输入音频流时间戳和位置信息。
该接口可以获取到音频通道实际录制位置(framePosition)以及录制到该位置时候的时间戳(timestamp),时间戳单位为纳秒。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |clockid_t clockId|时钟标识符,使用CLOCK_MONOTONIC。| |int64_t* framePosition|指向要接收位置的变量的指针。| |int64_t* timestamp|指向接收时间戳的变量的指针。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:
1. 参数capturer为nullptr;
2. 参数clockId无效。
AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。|

OH_AudioCapturer_GetFramesRead()

OH_AudioStream_Result OH_AudioCapturer_GetFramesRead(OH_AudioCapturer* capturer, int64_t* frames)

描述

查询自创建流以来已读取的帧数。

起始版本: 10

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |int64_t* frames|指向将为帧计数设置的变量的指针。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_GetOverflowCount()

OH_AudioStream_Result OH_AudioCapturer_GetOverflowCount(OH_AudioCapturer* capturer, uint32_t* count)

描述

查询当前录制音频流过载数。

起始版本: 12

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| |uint32_t* count|指向一个用来接收音频流过载数的变量的指针。|

返回:

|类型|说明| |–|–| |OH_AudioStream_Result|AUDIOSTREAM_SUCCESS:函数执行成功。
AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。|

OH_AudioCapturer_OnReadDataCallback()

typedef void (*OH_AudioCapturer_OnReadDataCallback)(OH_AudioCapturer* capturer, void* userData, void* audioData,int32_t audioDataSize)

描述

读取音频数据的回调函数。

起始版本: 20

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| | void* userData|指向应用自定义的数据存储区域。| | void* audioData|指向录制数据存储区域,用于应用填充录制数据。| |int32_t audioDataSize|录制数据的长度。|

OH_AudioCapturer_OnDeviceChangeCallback()

typedef void (*OH_AudioCapturer_OnDeviceChangeCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioDeviceDescriptorArray* deviceArray)

描述

音频录制流的设备变化事件回调函数。

起始版本: 20

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| | void* userData|指向应用自定义的数据存储区域。| |OH_AudioDeviceDescriptorArray* deviceArray|音频设备描述符数组。|

OH_AudioCapturer_OnInterruptCallback()

typedef void (*OH_AudioCapturer_OnInterruptCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)

描述

音频录制流的中断事件回调函数。

起始版本: 20

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* capturer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| | void* userData|指向应用自定义的数据存储区域。| |OH_AudioInterrupt_ForceType type|音频流中断类型。| | OH_AudioInterrupt_Hint hint|音频流中断提示类型。|

OH_AudioCapturer_OnErrorCallback()

typedef void (*OH_AudioCapturer_OnErrorCallback)(OH_AudioCapturer* renderer, void* userData,OH_AudioStream_Result error)

描述

音频录制流的错误事件回调函数。

起始版本: 20

参数:

|参数项|描述| |–|–| |OH_AudioCapturer* renderer|指向OH_AudioStreamBuilder_GenerateCapturer创建的音频流实例。| | void* userData|指向应用自定义的数据存储区域。| |OH_AudioStream_Result error|音频流录制错误结果。|

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Audio Kit(音频服务)

harmony 鸿蒙Interface (AudioCapturer)

harmony 鸿蒙Interface (AudioManager)

harmony 鸿蒙Interface (AudioRenderer)

harmony 鸿蒙Interface (AudioRoutingManager)

harmony 鸿蒙Interface (AudioSessionManager)

harmony 鸿蒙Interface (AudioSpatializationManager)

harmony 鸿蒙Interface (AudioStreamManager)

harmony 鸿蒙Interface (AudioVolumeGroupManager)

harmony 鸿蒙Interface (AudioVolumeManager)

0  赞