harmony 鸿蒙native_audiostream_base.h
native_audiostream_base.h
概述
声明OHAudio基础的数据结构。
引用文件:
库: libohaudio.so
系统能力: SystemCapability.Multimedia.Audio.Core
起始版本: 10
相关模块: OHAudio
汇总
结构体
|名称|typedef关键字|描述| |–|–|–| |OH_AudioStreamInfo|OH_AudioStreamInfo|定义音频流信息,用于描述基本音频格式。| |OH_AudioRenderer_Callbacks_Struct|OH_AudioRenderer_Callbacks|声明输出音频流的回调函数指针。| |OH_AudioCapturer_Callbacks_Struct|OH_AudioCapturer_Callbacks|声明输入音频流的回调函数指针。| |OH_AudioStreamBuilderStruct|OH_AudioStreamBuilder|声明音频流的构造器。构造器实例通常被用来设置音频流属性和创建音频流。| |OH_AudioRendererStruct|OH_AudioRenderer|声明输出音频流。输出音频流的实例被用来播放音频数据。| |OH_AudioCapturerStruct|OH_AudioCapturer|声明输入音频流。输入音频流的实例被用来获取音频数据。|
枚举
|名称|typedef关键字|描述|
|–|–|–|
|OH_AudioStream_Result|OH_AudioStream_Result|音频错误码。|
|OH_AudioStream_Type|OH_AudioStream_Type|音频流类型。|
|OH_AudioStream_SampleFormat|OH_AudioStream_SampleFormat|定义音频流采样格式。|
|OH_AudioStream_EncodingType|OH_AudioStream_EncodingType|定义音频流编码类型。|
|OH_AudioStream_Usage|OH_AudioStream_Usage|定义音频流使用场景。
通常用来描述音频输出流的使用场景。|
|OH_AudioStream_LatencyMode|OH_AudioStream_LatencyMode|定义音频时延模式。|
|OH_AudioStream_DirectPlaybackMode|OH_AudioStream_DirectPlaybackMode|定义音频流direct通路播放模式。|
|OH_AudioStream_VolumeMode|OH_AudioStream_VolumeMode|定义音频流音量模式。|
|OH_AudioStream_State|OH_AudioStream_State|定义音频流的状态。|
|OH_AudioStream_SourceType|OH_AudioStream_SourceType|定义音频流使用场景。
通常用来描述音频输入流的使用场景。|
|OH_AudioStream_Event|OH_AudioStream_Event|定义音频事件。|
|OH_AudioInterrupt_ForceType|OH_AudioInterrupt_ForceType|定义音频中断类型。
当用户监听到音频中断时,将获取此信息。
此类型表示本次音频打断的操作是否已由系统强制执行,具体操作信息(如音频暂停、停止等)可通过OH_AudioInterrupt_Hint获取。|
|OH_AudioInterrupt_Hint|OH_AudioInterrupt_Hint|定义音频中断提示类型。
当用户监听到音频中断时,将获取此信息。
此类型表示根据焦点策略,当前需要对音频流的具体操作(如暂停、调整音量等)。
可以结合OH_AudioInterrupt_ForceType信息,判断该操作是否已由系统强制执行。|
|OH_AudioInterrupt_Mode|OH_AudioInterrupt_Mode|定义音频中断模式。|
|OH_AudioStream_AudioEffectMode|OH_AudioStream_AudioEffectMode|定义音效模式。|
|OH_AudioStream_DeviceChangeReason|OH_AudioStream_DeviceChangeReason|流设备变更原因。|
|OH_AudioStream_PrivacyType|OH_AudioStream_PrivacyType|用于标识对应播放音频流是否支持被其他应用录制。|
|OH_AudioData_Callback_Result|OH_AudioData_Callback_Result|定义音频数据回调结果。|
函数
|名称|typedef关键字|描述|
|–|–|–|
|typedef void (*OH_AudioRenderer_OutputDeviceChangeCallback)(OH_AudioRenderer* renderer, void* userData,OH_AudioStream_DeviceChangeReason reason)|OH_AudioRenderer_OutputDeviceChangeCallback|输出音频流设备变更的回调函数。|
|typedef void (*OH_AudioRenderer_OnMarkReachedCallback)(OH_AudioRenderer* renderer, uint32_t samplePos, void* userData)|OH_AudioRenderer_OnMarkReachedCallback|到达标记位置时回调。|
|typedef int32_t (*OH_AudioRenderer_WriteDataWithMetadataCallback)(OH_AudioRenderer* renderer,void* userData, void* audioData, int32_t audioDataSize, void* metadata, int32_t metadataSize)|OH_AudioRenderer_WriteDataWithMetadataCallback|该函数指针将指向用于同时写入音频数据和元数据的回调函数。|
|typedef OH_AudioData_Callback_Result (*OH_AudioRenderer_OnWriteDataCallback)(OH_AudioRenderer* renderer, void* userData,void* audioData, int32_t audioDataSize)|OH_AudioRenderer_OnWriteDataCallback|该函数指针将指向用于写入音频数据的回调函数。
回调函数仅用来写入音频数据,请勿在回调函数中调用AudioRenderer相关接口。
该函数的返回结果表示填充到缓冲区的数据是否有效。如果结果无效,用户填写的数据将不被播放。回调函数结束后,音频服务会把audioData指针数据放入队列里等待播放,因此请勿在回调外再次更改audioData指向的数据, 且务必保证往audioData填满audioDataSize长度的待播放数据, 否则会导致音频服务播放杂音。|
枚举类型说明
OH_AudioStream_Result
enum OH_AudioStream_Result
描述
音频错误码。
起始版本: 10
|枚举项|描述|
|–|–|
|AUDIOSTREAM_SUCCESS = 0|操作成功|
|AUDIOSTREAM_ERROR_INVALID_PARAM = 1|入参错误。|
|AUDIOSTREAM_ERROR_ILLEGAL_STATE = 2|非法状态。|
|AUDIOSTREAM_ERROR_SYSTEM = 3|系统通用错误。|
|AUDIOSTREAM_ERROR_UNSUPPORTED_FORMAT = 4|不支持的音频格式,如不支持的编码类型、采样格式等。
起始版本: 19|
OH_AudioStream_Type
enum OH_AudioStream_Type
描述
音频流类型。
起始版本: 10
|枚举项|描述| |–|–| |AUDIOSTREAM_TYPE_RENDERER = 1|该类型代表音频流是输出流。| |AUDIOSTREAM_TYPE_CAPTURER = 2|该类型代表音频流是输入流。|
OH_AudioStream_SampleFormat
enum OH_AudioStream_SampleFormat
描述
定义音频流采样格式。
起始版本: 10
|枚举项|描述|
|–|–|
|AUDIOSTREAM_SAMPLE_U8 = 0|Unsigned 8位。|
|AUDIOSTREAM_SAMPLE_S16LE = 1|Short 16位小端。|
|AUDIOSTREAM_SAMPLE_S24LE = 2|Short 24位小端。|
|AUDIOSTREAM_SAMPLE_S32LE = 3|Short 32位小端。|
|AUDIOSTREAM_SAMPLE_F32LE = 4|Float 32位小端。
起始版本: 17|
OH_AudioStream_EncodingType
enum OH_AudioStream_EncodingType
描述
定义音频流编码类型。
起始版本: 10
|枚举项|描述|
|–|–|
|AUDIOSTREAM_ENCODING_TYPE_RAW = 0|PCM编码。 |
|AUDIOSTREAM_ENCODING_TYPE_AUDIOVIVID = 1|AudioVivid编码。
起始版本: 12|
|AUDIOSTREAM_ENCODING_TYPE_E_AC3 = 2|E_AC3编码。
起始版本: 19 |
OH_AudioStream_Usage
enum OH_AudioStream_Usage
描述
定义音频流使用场景。
通常用来描述音频输出流的使用场景。
起始版本: 10
|枚举项|描述|
|–|–|
|AUDIOSTREAM_USAGE_UNKNOWN = 0|未知类型。|
|AUDIOSTREAM_USAGE_MUSIC = 1|音乐。|
|AUDIOSTREAM_USAGE_COMMUNICATION = 2|VoIP语音通话。|
|AUDIOSTREAM_USAGE_VOICE_ASSISTANT = 3|语音播报。|
|AUDIOSTREAM_USAGE_ALARM = 4|闹钟。|
|AUDIOSTREAM_USAGE_VOICE_MESSAGE = 5|语音消息。|
|AUDIOSTREAM_USAGE_RINGTONE = 6|铃声。|
|AUDIOSTREAM_USAGE_NOTIFICATION = 7|通知。|
|AUDIOSTREAM_USAGE_ACCESSIBILITY = 8|无障碍。|
|AUDIOSTREAM_USAGE_MOVIE = 10|电影或视频。|
|AUDIOSTREAM_USAGE_GAME = 11|游戏。|
|AUDIOSTREAM_USAGE_AUDIOBOOK = 12|有声读物(包括听书、相声、评书)、听新闻、播客等。|
|AUDIOSTREAM_USAGE_NAVIGATION = 13|导航。|
|AUDIOSTREAM_USAGE_VIDEO_COMMUNICATION = 17|VoIP视频通话。
起始版本: 12|
OH_AudioStream_LatencyMode
enum OH_AudioStream_LatencyMode
描述
定义音频时延模式。
起始版本: 10
|枚举项|描述| |–|–| |AUDIOSTREAM_LATENCY_MODE_NORMAL = 0|该模式代表一个普通时延的音频流。| |AUDIOSTREAM_LATENCY_MODE_FAST = 1|该模式代表一个低时延的音频流。|
OH_AudioStream_DirectPlaybackMode
enum OH_AudioStream_DirectPlaybackMode
描述
定义音频流direct通路播放模式。
起始版本: 19
|枚举项|描述| |–|–| |AUDIOSTREAM_DIRECT_PLAYBACK_NOT_SUPPORTED = 0|该模式代表不支持direct通路播放。| |AUDIOSTREAM_DIRECT_PLAYBACK_BITSTREAM_SUPPORTED = 1|该模式代表支持不解码的direct通路播放。| |AUDIOSTREAM_DIRECT_PLAYBACK_PCM_SUPPORTED = 2|该模式代表支持pcm编码的direct通路播放。|
OH_AudioStream_VolumeMode
enum OH_AudioStream_VolumeMode
描述
定义音频流音量模式。
起始版本: 18
|枚举项|描述|
|–|–|
|AUDIOSTREAM_VOLUMEMODE_SYSTEM_GLOBAL = 0|系统级音量(默认模式)。|
|AUDIOSTREAM_VOLUMEMODE_APP_INDIVIDUAL = 1|应用级音量。
设置为该模式后可以通过提供的接口设置、查询应用音量。|
OH_AudioStream_State
enum OH_AudioStream_State
描述
定义音频流的状态。
起始版本: 10
|枚举项|描述| |–|–| |AUDIOSTREAM_STATE_INVALID = -1|不合法的状态。| |AUDIOSTREAM_STATE_NEW = 0|新创建时的状态。| |AUDIOSTREAM_STATE_PREPARED = 1|准备状态。| |AUDIOSTREAM_STATE_RUNNING = 2|工作状态。| |AUDIOSTREAM_STATE_STOPPED = 3|停止状态。| |AUDIOSTREAM_STATE_RELEASED = 4|释放状态。| |AUDIOSTREAM_STATE_PAUSED = 5|暂停状态。|
OH_AudioStream_SourceType
enum OH_AudioStream_SourceType
描述
定义音频流使用场景。
通常用来描述音频输入流的使用场景。
起始版本: 10
|枚举项|描述|
|–|–|
|AUDIOSTREAM_SOURCE_TYPE_INVALID = -1|不合法状态。|
|AUDIOSTREAM_SOURCE_TYPE_MIC = 0|录音。|
|AUDIOSTREAM_SOURCE_TYPE_VOICE_RECOGNITION = 1|语音识别。|
|AUDIOSTREAM_SOURCE_TYPE_PLAYBACK_CAPTURE = 2|播放录音。|
|AUDIOSTREAM_SOURCE_TYPE_VOICE_COMMUNICATION = 7|通话。|
|AUDIOSTREAM_SOURCE_TYPE_VOICE_MESSAGE = 10 |语音消息。
起始版本: 12 |
|AUDIOSTREAM_SOURCE_TYPE_CAMCORDER = 13 |录像。
起始版本: 13 |
|AUDIOSTREAM_SOURCE_TYPE_UNPROCESSED = 14 |麦克风纯净录音(系统不做任何算法处理)。
起始版本: 14|
|AUDIOSTREAM_SOURCE_TYPE_LIVE = 17 |直播。
起始版本: 20|
OH_AudioStream_Event
enum OH_AudioStream_Event
描述
定义音频事件。
起始版本: 10
废弃版本: 20
|枚举项|描述|
|–|–|
|AUDIOSTREAM_EVENT_ROUTING_CHANGED = 0|音频的路由已更改。
起始版本: 10
废弃版本: 18
替代接口: OH_AudioRenderer_OutputDeviceChangeCallback|
OH_AudioInterrupt_ForceType
enum OH_AudioInterrupt_ForceType
描述
定义音频中断类型。
当用户监听到音频中断时,将获取此信息。
此类型表示本次音频打断的操作是否已由系统强制执行,具体操作信息(如音频暂停、停止等)可通过OH_AudioInterrupt_Hint获取。
起始版本: 10
|枚举项|描述| |–|–| |AUDIOSTREAM_INTERRUPT_FORCE = 0|强制打断类型,即具体操作已由系统强制执行。| |AUDIOSTREAM_INTERRUPT_SHAR = 1|共享打断类型,即系统不执行具体操作,通过OH_AudioInterrupt_Hint提示并建议应用操作,应用可自行决策下一步处理方式。|
OH_AudioInterrupt_Hint
enum OH_AudioInterrupt_Hint
描述
定义音频中断提示类型。
当用户监听到音频中断时,将获取此信息。
此类型表示根据焦点策略,当前需要对音频流的具体操作(如暂停、调整音量等)。
可以结合OH_AudioInterrupt_ForceType信息,判断该操作是否已由系统强制执行。
起始版本: 10
|枚举项|描述|
|–|–|
|AUDIOSTREAM_INTERRUPT_HINT_NONE = 0|不提示。|
|AUDIOSTREAM_INTERRUPT_HINT_RESUME = 1|提示音频恢复,应用可主动触发开始渲染或开始采集的相关操作。
此操作无法由系统强制执行,其对应的OH_AudioInterrupt_ForceType一定为AUDIOSTREAM_INTERRUPT_SHARE类型。|
|AUDIOSTREAM_INTERRUPT_HINT_PAUSE = 2|提示音频暂停,暂时失去音频焦点。
后续待焦点可用时,会出现AUDIOSTREAM_INTERRUPT_HINT_RESUME事件。|
|AUDIOSTREAM_INTERRUPT_HINT_STOP = 3|提示音频停止,彻底失去音频焦点。|
|AUDIOSTREAM_INTERRUPT_HINT_DUCK = 4|提示音频躲避开始,音频降低音量播放,而不会停止。|
|AUDIOSTREAM_INTERRUPT_HINT_UNDUCK = 5|提示音量躲避结束,音频恢复正常音量。|
OH_AudioInterrupt_Mode
enum OH_AudioInterrupt_Mode
描述
定义音频中断模式。
起始版本: 12
|枚举项|描述| |–|–| |AUDIOSTREAM_INTERRUPT_MODE_SHARE = 0|共享模式。| |AUDIOSTREAM_INTERRUPT_MODE_INDEPENDENT = 1|独立模式。|
OH_AudioStream_AudioEffectMode
enum OH_AudioStream_AudioEffectMode
描述
定义音效模式。
起始版本: 12
|枚举项|描述| |–|–| |EFFECT_NONE = 0|无音效模式。| |EFFECT_DEFAULT = 1|默认音效模式。|
OH_AudioStream_DeviceChangeReason
enum OH_AudioStream_DeviceChangeReason
描述
流设备变更原因。
起始版本: 11
|枚举项|描述| |–|–| |REASON_UNKNOWN = 0|未知原因。| |REASON_NEW_DEVICE_AVAILABLE = 1|新设备可用。| |REASON_OLD_DEVICE_UNAVAILABLE = 2|旧设备不可用。当报告此原因时,应用程序应考虑暂停音频播放。| |REASON_OVERRODE = 3|用户或系统强制选择切换。|
OH_AudioStream_PrivacyType
enum OH_AudioStream_PrivacyType
描述
用于标识对应播放音频流是否支持被其他应用录制。
起始版本: 12
|枚举项|描述| |–|–| |AUDIO_STREAM_PRIVACY_TYPE_PUBLIC = 0|表示音频流可以被其他应用录制。| |AUDIO_STREAM_PRIVACY_TYPE_PRIVATE = 1|表示音频流不可以被其他应用录制。|
OH_AudioData_Callback_Result
enum OH_AudioData_Callback_Result
描述
定义音频数据回调结果。
起始版本: 12
|枚举项|描述| |–|–| |AUDIO_DATA_CALLBACK_RESULT_INVALID = -1|表示音频数据回调结果无效,且音频数据不播放。| |AUDIO_DATA_CALLBACK_RESULT_VALID = 0|表示音频数据回调结果有效,将播放音频数据。|
函数说明
OH_AudioRenderer_OutputDeviceChangeCallback()
typedef void (*OH_AudioRenderer_OutputDeviceChangeCallback)(OH_AudioRenderer* renderer, void* userData,OH_AudioStream_DeviceChangeReason reason)
描述
输出音频流设备变更的回调函数。
起始版本: 11
参数:
|参数项|描述| |–|–| |OH_AudioRenderer* renderer|指向OH_AudioStreamBuilder_GenerateRenderer创建的音频流实例。| | void* userData|指向通过回调函数传递的应用数据指针。| |OH_AudioStream_DeviceChangeReason reason|流设备变更原因。|
OH_AudioRenderer_OnMarkReachedCallback()
typedef void (*OH_AudioRenderer_OnMarkReachedCallback)(OH_AudioRenderer* renderer, uint32_t samplePos, void* userData)
描述
到达标记位置时回调。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_AudioRenderer* renderer|指向OH_AudioStreamBuilder_GenerateRenderer创建的音频流实例。| | uint32_t samplePos|设置目标标记位置。| | void* userData|指向通过回调函数传递的应用数据指针。|
OH_AudioRenderer_WriteDataWithMetadataCallback()
typedef int32_t (*OH_AudioRenderer_WriteDataWithMetadataCallback)(OH_AudioRenderer* renderer,void* userData, void* audioData, int32_t audioDataSize, void* metadata, int32_t metadataSize)
描述
该函数指针将指向用于同时写入音频数据和元数据的回调函数。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_AudioRenderer* renderer|指向OH_AudioStreamBuilder_GenerateRenderer创建的音频流实例。| |void* userData|指向通过回调函数传递的应用数据指针。| | void* audioData|指向用户写入的音频数据的指针。| | int32_t audioDataSize|用户写入的音频数据的数据长度,以字节为单位。| | void* metadata|指向用户写入的元数据的指针。| | int32_t metadataSize|用户写入的元数据的数据长度,以字节为单位。|
返回:
|类型|说明| |–|–| |int32_t|用户返回的回调函数的错误码。|
OH_AudioRenderer_OnWriteDataCallback()
typedef OH_AudioData_Callback_Result (*OH_AudioRenderer_OnWriteDataCallback)(OH_AudioRenderer* renderer, void* userData,void* audioData, int32_t audioDataSize)
描述
该函数指针将指向用于写入音频数据的回调函数。
回调函数仅用来写入音频数据,请勿在回调函数中调用AudioRenderer相关接口。
该函数的返回结果表示填充到缓冲区的数据是否有效。如果结果无效,用户填写的数据将不被播放。回调函数结束后,音频服务会把audioData指针数据放入队列里等待播放,因此请勿在回调外再次更改audioData指向的数据, 且务必保证往audioData填满audioDataSize长度的待播放数据, 否则会导致音频服务播放杂音。
参数audioDataSize可以通过OH_AudioStreamBuilder_SetFrameSizeInCallback设置。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_AudioRenderer* renderer|指向OH_AudioStreamBuilder_GenerateRenderer创建的音频流实例。| | void* userData|指向通过回调函数传递的应用数据指针。| |void* audioData|指向用户写入的音频数据的指针。| | int32_t audioDataSize|用户写入的音频数据的数据长度,以字节为单位。|
返回:
|类型|说明|
|–|–|
|OH_AudioData_Callback_Result|AUDIO_DATA_CALLBACK_RESULT_INVALID:音频数据回调结果无效,且音频数据不播放。
AUDIO_DATA_CALLBACK_RESULT_VALID:音频数据回调结果有效,将播放音频数据。|
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Interface (AudioCapturer)
harmony 鸿蒙Interface (AudioManager)
harmony 鸿蒙Interface (AudioRenderer)
harmony 鸿蒙Interface (AudioRoutingManager)
harmony 鸿蒙Interface (AudioSessionManager)
harmony 鸿蒙Interface (AudioSpatializationManager)
harmony 鸿蒙Interface (AudioStreamManager)
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦