harmony 鸿蒙IAudioRender
IAudioRender
概述
AudioRender音频播放接口。
提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据等。
Since:
3.2
Version:
1.0
相关模块:
汇总
Public 成员函数
名称 | 描述 |
---|---|
GetLatency ([out] unsigned int ms) | 获取音频硬件驱动的延迟时间。 |
RenderFrame ([in] byte[] frame, [out] unsigned long replyBytes) | 向音频驱动中播放一帧输出数据(放音,音频下行数据)。 |
GetRenderPosition ([out] unsigned long frames, [out] struct AudioTimeStamp time) | 获取音频已输出的帧数。 |
SetRenderSpeed ([in] float speed) | 设置一个音频的播放速度。 |
GetRenderSpeed ([out] float speed) | 获取一个音频当前的播放速度。 |
SetChannelMode ([in] enum AudioChannelMode mode) | 设置音频播放的通道模式。 |
GetChannelMode ([out] enum AudioChannelMode mode) | 获取音频播放当前的通道模式。 |
RegCallback ([in] IAudioCallback audioCallback, [in] byte cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知。 |
DrainBuffer ([out] enum AudioDrainNotifyType type) | 排空缓冲区中的数据。 |
IsSupportsDrain ([out] boolean support) | 判断是否支持清空缓冲区数据的功能。 |
CheckSceneCapability ([in] struct AudioSceneDescriptor scene, [out] boolean supported) | 是否支持某个音频场景的配置。 |
SelectScene ([in] struct AudioSceneDescriptor scene) | 选择音频场景。 |
SetMute ([in] boolean mute) | 设置音频的静音状态。 |
GetMute ([out] boolean mute) | 获取音频的静音状态。 |
SetVolume ([in] float volume) | 设置一个音频流的音量。 |
GetVolume ([out] float volume) | 获取一个音频流的音量。 |
GetGainThreshold ([out] float min, [out] float max) | 获取音频流增益的阈值。 |
GetGain ([out] float gain) | 获取音频流的增益。 |
SetGain ([in] float gain) | 设置音频流的增益。 |
GetFrameSize ([out] unsigned long size) | 获取音频帧的大小。 |
GetFrameCount ([out] unsigned long count) | 获取音频buffer中的音频帧数。 |
SetSampleAttributes ([in] struct AudioSampleAttributes attrs) | 设置音频采样的属性参数。 |
GetSampleAttributes ([out] struct AudioSampleAttributes attrs) | 获取音频采样的属性参数。 |
GetCurrentChannelId ([out] unsigned int channelId) | 获取音频的数据通道ID。 |
SetExtraParams ([in] String keyValueList) | 设置音频拓展参数。 |
GetExtraParams ([out] String keyValueList) | 获取音频拓展参数。 |
ReqMmapBuffer ([in] int reqSize, [in] struct AudioMmapBufferDescripter desc) | 请求mmap缓冲区。 |
GetMmapPosition ([out] unsigned long frames, [out] struct AudioTimeStamp time) | 获取当前mmap的读/写位置。 |
AddAudioEffect ([in] unsigned long effectid) | 添加音频效果。 |
RemoveAudioEffect ([in] unsigned long effectid) | 移除音频效果。 |
GetFrameBufferSize ([out] unsigned long bufferSize) | 获取缓冲区大小。 |
Start () | 启动一个音频播放或录音处理。 |
Stop () | 停止一个音频播放或录音处理。 |
Pause () | 暂停一个音频播放或录音处理。 |
Resume () | 恢复一个音频播放或录音处理。 |
Flush () | 刷新音频缓冲区buffer中的数据。 |
TurnStandbyMode () | 设置或去设置设备的待机模式。 |
AudioDevDump ([in] int range, [in] int fd) | Dump音频设备信息。 |
IsSupportsPauseAndResume ([out] boolean supportPause, [out] boolean supportResume) | 判断声卡是否支持音频播放的暂停和恢复功能 |
成员函数说明
AddAudioEffect()
IAudioRender::AddAudioEffect ([in] unsigned long effectid)
描述:
添加音频效果。
参数:
名称 | 描述 |
---|---|
effectid | 添加的音频效果实例标识符。 |
返回:
成功返回值0,失败返回负值。
AudioDevDump()
IAudioRender::AudioDevDump ([in] int range, [in] int fd )
描述:
Dump音频设备信息。
参数:
名称 | 描述 |
---|---|
range | Dump信息范围,分为简要信息、全量信息。 |
fd | 指定Dump目标文件。 |
返回:
成功返回值0,失败返回负值。
CheckSceneCapability()
IAudioRender::CheckSceneCapability ([in] struct AudioSceneDescriptor scene, [out] boolean supported )
描述:
是否支持某个音频场景的配置。
参数:
名称 | 描述 |
---|---|
scene | 待判断的音频场景描述符,详请参考AudioSceneDescriptor。 |
supported | 是否支持的状态保存到supported中,true表示支持,false表示不支持。 |
返回:
成功返回值0,失败返回负值。
参见:
DrainBuffer()
IAudioRender::DrainBuffer ([out] enum AudioDrainNotifyType type)
描述:
排空缓冲区中的数据。
参数:
名称 | 描述 |
---|---|
type | 播放结束的类型,详请参考AudioDrainNotifyType。 |
返回:
成功返回值0,失败返回负值。
参见:
Flush()
IAudioRender::Flush ()
描述:
刷新音频缓冲区buffer中的数据。
返回:
成功返回值0,失败返回负值。
GetChannelMode()
IAudioRender::GetChannelMode ([out] enum AudioChannelMode mode)
描述:
获取音频播放当前的通道模式。
参数:
名称 | 描述 |
---|---|
mode | 获取的通道模式保存到mode中,详请参考AudioChannelMode。 |
返回:
成功返回值0,失败返回负值。
参见:
GetCurrentChannelId()
IAudioRender::GetCurrentChannelId ([out] unsigned int channelId)
描述:
获取音频的数据通道ID。
参数:
名称 | 描述 |
---|---|
channelId | 获取的通道ID保存到channelId中。 |
返回:
成功返回值0,失败返回负值。
GetExtraParams()
IAudioRender::GetExtraParams ([out] String keyValueList)
描述:
获取音频拓展参数。
参数:
名称 | 描述 |
---|---|
keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 |
返回:
成功返回值0,失败返回负值。
GetFrameBufferSize()
IAudioRender::GetFrameBufferSize ([out] unsigned long bufferSize)
描述:
获取缓冲区大小。
参数:
名称 | 描述 |
---|---|
bufferSize | 获取的缓冲区大小保存在bufferSize中,单位为字节。 |
返回:
成功返回值0,失败返回负值。
GetFrameCount()
IAudioRender::GetFrameCount ([out] unsigned long count)
描述:
获取音频buffer中的音频帧数。
参数:
名称 | 描述 |
---|---|
count | 一个音频buffer中包含的音频帧数,获取后保存到count中。 |
返回:
成功返回值0,失败返回负值。
GetFrameSize()
IAudioRender::GetFrameSize ([out] unsigned long size)
描述:
获取音频帧的大小。
获取一帧音频数据的长度(字节数)。
参数:
名称 | 描述 |
---|---|
size | 获取的音频帧大小(字节数)保存到size中。 |
返回:
成功返回值0,失败返回负值。
GetGain()
IAudioRender::GetGain ([out] float gain)
描述:
获取音频流的增益。
参数:
名称 | 描述 |
---|---|
gain | 保存当前获取到的增益到gain中。 |
返回:
成功返回值0,失败返回负值。
参见:
GetGainThreshold()
IAudioRender::GetGainThreshold ([out] float min, [out] float max )
描述:
获取音频流增益的阈值。
在具体的功能实现中,可以根据芯片平台的实际情况来进行处理:
-
- 可以使用实际的增益值,例如增益的范围为-50db ~ 6db。
-
- 也可以将增益范围设定为0.0~1.0,如果增益的范围为-50db ~ 6db, 则增益的映射关系为0.0表示静音,1.0表示最大增益(6db)。
参数:
名称 | 描述 |
---|---|
min | 获取的音频增益的阈值下限保存到min中。 |
max | 获取的音频增益的阈值上限保存到max中。 |
返回:
成功返回值0,失败返回负值。
参见:
GetLatency()
IAudioRender::GetLatency ([out] unsigned int ms)
描述:
获取音频硬件驱动的延迟时间。
参数:
名称 | 描述 |
---|---|
ms | 获取的延迟时间(单位:毫秒)保存到ms中。 |
返回:
成功返回值0,失败返回负值。
GetMmapPosition()
IAudioRender::GetMmapPosition ([out] unsigned long frames, [out] struct AudioTimeStamp time )
描述:
获取当前mmap的读/写位置。
参数:
名称 | 描述 |
---|---|
frames | 获取的音频帧计数保存到frames中。 |
time | 获取的关联时间戳保存到time中,详请参考AudioTimeStamp。 |
返回:
成功返回值0,失败返回负值。
GetMute()
IAudioRender::GetMute ([out] boolean mute)
描述:
获取音频的静音状态。
参数:
名称 | 描述 |
---|---|
mute | 获取的静音状态保存到mute中,true表示静音操作、false表示取消静音操作。 |
返回:
成功返回值0,失败返回负值。
参见:
GetRenderPosition()
IAudioRender::GetRenderPosition ([out] unsigned long frames, [out] struct AudioTimeStamp time )
描述:
获取音频已输出的帧数。
参数:
名称 | 描述 |
---|---|
frames | 获取的音频帧数保存到frames中,详请参考AudioTimeStamp。 |
time | 获取的关联时间戳保存到time中。 |
返回:
成功返回值0,失败返回负值。
参见:
GetRenderSpeed()
IAudioRender::GetRenderSpeed ([out] float speed)
描述:
获取一个音频当前的播放速度。
参数:
名称 | 描述 |
---|---|
speed | 获取的播放速度保存到speed中。 |
返回:
成功返回值0,失败返回负值。
参见:
GetSampleAttributes()
IAudioRender::GetSampleAttributes ([out] struct AudioSampleAttributes attrs)
描述:
获取音频采样的属性参数。
参数:
名称 | 描述 |
---|---|
attrs | 获取的音频采样属性(例如采样频率、采样精度、通道) 保存到attrs中,详请参考AudioSampleAttributes。 |
返回:
成功返回值0,失败返回负值。
参见:
GetVolume()
IAudioRender::GetVolume ([out] float volume)
描述:
获取一个音频流的音量。
参数:
名称 | 描述 |
---|---|
volume | 获取的音量保存到volume中,范围0.0~1.0。 |
返回:
成功返回值0,失败返回负值。
参见:
IsSupportsDrain()
IAudioRender::IsSupportsDrain ([out] boolean support)
描述:
判断是否支持清空缓冲区数据的功能。
参数:
名称 | 描述 |
---|---|
support | 是否支持的状态保存到support中,true表示支持,false表示不支持。 |
返回:
成功返回值0,失败返回负值。
IsSupportsPauseAndResume()
IAudioRender::IsSupportsPauseAndResume ([out] boolean supportPause, [out] boolean supportResume )
描述:
判断声卡是否支持音频播放的暂停和恢复功能
参数:
名称 | 描述 |
---|---|
supportPause | 是否支持暂停功能的状态保存到supportPause中,true表示支持,false表示不支持。 |
supportResume | 是否支持恢复功能的状态保存到supportResume中,true表示支持,false表示不支持。 |
返回:
成功返回值0,失败返回负值。
Pause()
IAudioRender::Pause ()
描述:
暂停一个音频播放或录音处理。
返回:
成功返回值0,失败返回负值。
参见:
RegCallback()
IAudioRender::RegCallback ([in] IAudioCallback audioCallback, [in] byte cookie )
描述:
注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知。
参数:
名称 | 描述 |
---|---|
audioCallback | 注册的回调函数,详请参考IAudioCallback。 |
cookie | 回调函数的入参。 |
返回:
成功返回值0,失败返回负值。
参见:
RemoveAudioEffect()
IAudioRender::RemoveAudioEffect ([in] unsigned long effectid)
描述:
移除音频效果。
参数:
名称 | 描述 |
---|---|
effectid | 移除的音频效果实例标识符。 |
返回:
成功返回值0,失败返回负值。
RenderFrame()
IAudioRender::RenderFrame ([in] byte[] frame, [out] unsigned long replyBytes )
描述:
向音频驱动中播放一帧输出数据(放音,音频下行数据)。
参数:
名称 | 描述 |
---|---|
frame | 待写入的输出数据的音频frame。 |
replyBytes | 实际写入的音频数据长度(字节数),获取后保存到replyBytes中。 |
返回:
成功返回值0,失败返回负值。
ReqMmapBuffer()
IAudioRender::ReqMmapBuffer ([in] int reqSize, [in] struct AudioMmapBufferDescripter desc )
描述:
请求mmap缓冲区。
参数:
名称 | 描述 |
---|---|
reqSize | 请求缓冲区的大小。 |
desc | 缓冲区描述符,详请参考AudioMmapBufferDescripter。 |
返回:
成功返回值0,失败返回负值。
Resume()
IAudioRender::Resume ()
描述:
恢复一个音频播放或录音处理。
返回:
成功返回值0,失败返回负值。
参见:
SelectScene()
IAudioRender::SelectScene ([in] struct AudioSceneDescriptor scene)
描述:
选择音频场景。
选择一个非常具体的音频场景(应用场景和输出设备的组合),例如同样是使用手机中的喇叭作为输出设备。
- 在媒体播放场景scene为media_speaker。
- 在语音通话免提场景scene为voice_speaker。
只是选择一个音频场景,例如使用场景为媒体播放(media)、电影播放(movie)、游戏播放(game)。
只是选择一个音频输出设备,例如输出设备为听筒(receiver)、喇叭(speaker)、有线耳机(headset)。
参数:
名称 | 描述 |
---|---|
scene | 待设置的音频场景描述符,详请参考AudioSceneDescriptor。 |
返回:
成功返回值0,失败返回负值。
参见:
SetChannelMode()
IAudioRender::SetChannelMode ([in] enum AudioChannelMode mode)
描述:
设置音频播放的通道模式。
参数:
名称 | 描述 |
---|---|
mode | 待设置的通道模式,详请参考AudioChannelMode。 |
返回:
成功返回值0,失败返回负值。
参见:
SetExtraParams()
IAudioRender::SetExtraParams ([in] String keyValueList)
描述:
设置音频拓展参数。
参数:
名称 | 描述 |
---|---|
keyValueList | 拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 |
返回:
成功返回值0,失败返回负值。
SetGain()
IAudioRender::SetGain ([in] float gain)
描述:
设置音频流的增益。
参数:
名称 | 描述 |
---|---|
gain | 待设置的增益,最小为0.0,最大为1.0。 |
返回:
成功返回值0,失败返回负值。
参见:
SetMute()
IAudioRender::SetMute ([in] boolean mute)
描述:
设置音频的静音状态。
参数:
名称 | 描述 |
---|---|
mute | 待设置的静音状态,true表示静音操作、false表示取消静音操作。 |
返回:
成功返回值0,失败返回负值。
参见:
SetRenderSpeed()
IAudioRender::SetRenderSpeed ([in] float speed)
描述:
设置一个音频的播放速度。
参数:
名称 | 描述 |
---|---|
speed | 待设置的播放速度(倍速),例0.5、0.75、1.0、1.25、1.5、2.0。 |
返回:
成功返回值0,失败返回负值。
参见:
SetSampleAttributes()
IAudioRender::SetSampleAttributes ([in] struct AudioSampleAttributes attrs)
描述:
设置音频采样的属性参数。
参数:
名称 | 描述 |
---|---|
attrs | 待设置的音频采样属性,例如采样频率、采样精度、通道,详请参考AudioSampleAttributes。 |
返回:
成功返回值0,失败返回负值。
参见:
SetVolume()
IAudioRender::SetVolume ([in] float volume)
描述:
设置一个音频流的音量。
音量的取值范围是0.0~1.0,如果音频服务中的音量等级为15级(0 ~ 15), 则音量的映射关系为0.0表示静音,1.0表示最大音量等级(15)。
参数:
名称 | 描述 |
---|---|
volume | 待设置的音量,范围0.0~1.0。 |
返回:
成功返回值0,失败返回负值。
Start()
IAudioRender::Start ()
描述:
启动一个音频播放或录音处理。
返回:
成功返回值0,失败返回负值。
参见:
Stop()
IAudioRender::Stop ()
描述:
停止一个音频播放或录音处理。
返回:
成功返回值0,失败返回负值。
参见:
TurnStandbyMode()
IAudioRender::TurnStandbyMode ()
描述:
设置或去设置设备的待机模式。
返回:
设置设备待机模式成功返回值0,失败返回负值;设置取消设备待机模式成功返回正值,失败返回负值。
你可能感兴趣的鸿蒙文章
harmony 鸿蒙ActivityRecognitionTypes.idl
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦