1. vol_ctrl模块简介

vol_ctrl模块可以视为HAL层的功能,是对底层pulseaudio功能的封装,对上提供设置音量、静音、获取音量、获取当前播放状态、设置音量曲线等功能。

vol_ctrl对上提供动态库和头文件"volumecontrol.h"

1.1. rk_stream_type_t

对上提供一个枚举类型,定义了不同的播放stream,原型如下:

typedef enum
{
    STREAM_AUDIO = 0,
    STREAM_TTS,
    STREAM_RING,
    STREAM_VOICE_CALL,
    STREAM_ALARM,
    STREAM_PLAYBACK,
    STREAM_SYSTEM,
}rk_stream_type_t;

每个stream就代表一个pulseaudio连接,含义如字面意思。

1.2. 主要接口函数

1.2.1. extern int rk_set_volume(int vol);

vol:整形,取值范围0~100,表示音量值;
返回值:0;
功能:设置除alarm外的其他所有stream的音量。

1.2.2. extern int rk_get_volume();

功能:返回AUDIO或者TTS stream的音量值。

:另外还有rk_set_all_volumerk_get_all_volume接口函数,是用来设置和获取设备音量的接口,建议不要使用,以免造成状态混乱。

1.2.3. extern int rk_set_mute(bool mute);

功能:设置静音(true)或者取消静音(false);
返回值:0。

1.2.4. extern bool rk_is_mute();

功能:获取静音状态,静音返回true,非静音返回false。

1.2.5. extern int rk_set_stream_volume(rk_stream_type_t stream_type, int vol);

stream_type:rk_stream_type_t 枚举类型;
vol:整形,取值范围0~100,表示音量值;
功能:设置指定stream的音量;
返回值:成功返回0,失败返回-1。

1.2.6. extern int rk_get_stream_volume(rk_stream_type_t stream_type);

功能:获取指定stream的音量值。

1.2.7. extern int rk_set_stream_mute(rk_stream_type_t stream_type, bool mute);

功能:设置指定stream的静音状态,true:设置静音;false:取消静音。

1.2.8. extern bool rk_is_stream_mute(rk_stream_type_t stream_type);

功能:获取指定stream的静音状态。

1.2.9. extern int rk_get_stream_playing_status(rk_stream_type_t stream_type);

功能:获取指定stream的播放状态;
返回值:正在播放返回1,传入参数错误或者未在播放状态返回0.
:只要有pulseaudio连接,就认为处在播放状态,常连接,就算不在播放状态,也会返回1。

1.2.10. extern int rk_setCustomVolumeCurve(int cnt,int* VolArray);

功能:设置自定义音量曲线;
cnt:音量曲线数组大小,要求为固定值:101;
VolArray:音量曲线数组。

:我们传入的音量值取值范围为0-100,实际设置到pulseaudio的值为0-65536,默认的音量转换公式为:

(vol+156)^2

用户也可以通过此函数设置自己的音量曲线,但要求传入的音量曲线数组大小必须为101.

results matching ""

    No results matching ""