luat_soc_sdk_2024 V1.0
音频接口

结构体

struct  luat_audio_play_info_t
 audio播放控制参数 更多...
 

函数

void luat_audio_play_file_default_fun (void *param)
 
void luat_audio_play_tts_default_fun (void *param)
 
void luat_audio_play_global_init (audio_play_event_cb_fun_t event_cb, audio_play_data_cb_fun_t data_cb, audio_play_default_fun_t play_file_fun, audio_play_default_fun_t play_tts_fun, void *user_param)
 音频播放初始化,可以选择是否启用TTS,文件播放功能,用来节省flash空间
 
void luat_audio_play_global_init_with_task_priority (audio_play_event_cb_fun_t event_cb, audio_play_data_cb_fun_t data_cb, audio_play_default_fun_t play_file_fun, audio_play_default_fun_t play_tts_fun, void *user_param, uint8_t priority)
 音频播放初始化,可以选择是否启用TTS,文件播放功能,用来节省flash空间,可以配置audio任务优先级
 
int luat_audio_play_multi_files (uint8_t multimedia_id, luat_audio_play_info_t info[], uint32_t files_num)
 播放指定数量的文件或者ROM数组(文件数据直接写成数组形式)
 
uint8_t luat_audio_play_is_finish (uint8_t multimedia_id)
 是否播放完全部数据
 
int luat_audio_play_fast_stop (uint8_t multimedia_id)
 强制停止播放文件,如果音频解码已经完成了,会停止已经输出到底层驱动的数据播放
 
int luat_audio_play_clear_stop_flag (uint8_t multimedia_id)
 清除强制停止播放文件的标识,可以在误操作stop时不影响下一次播放
 
int luat_audio_play_pause_raw (uint8_t multimedia_id, uint8_t is_pause)
 暂停/恢复播放
 
int luat_audio_play_get_last_error (uint8_t multimedia_id)
 获取上一次播放结果,在MULTIMEDIA_CB_AUDIO_DONE回调时调用最佳
 
int luat_audio_play_write_blank_raw (uint8_t multimedia_id, uint8_t cnt, uint8_t add_font)
 在开头或者结尾插入多段空白数据,每段数据约100ms
 
int luat_audio_play_start_raw (uint8_t multimedia_id, uint8_t audio_format, uint8_t num_channels, uint32_t sample_rate, uint8_t bits_per_sample, uint8_t is_signed)
 立刻初始化播放未编码的原始音频数据流
 
int luat_audio_play_write_raw (uint8_t multimedia_id, uint8_t *data, uint32_t len)
 向底层驱动传入一段原始音频数据
 
int luat_audio_play_stop_raw (uint8_t multimedia_id)
 强制停止所有播放,同时底层驱动也会停止输出,不要用于播放文件的结束
 
void luat_audio_play_tts_set_resource (void *address, void *sdk_id, void *tts_resource_read_fun)
 设置TTS的资源和对应SDKID,TTS资源有很多种。
 
void * luat_audio_play_get_stream (uint8_t multimedia_id)
 获取底层播放的stream指针
 
void luat_audio_play_set_user_lock (uint8_t multimedia_id, uint8_t onoff)
 控制底层播放是否允许结束
 
void luat_audio_inter_amr_init (uint8_t is_wb, uint8_t quality)
 
int luat_audio_inter_amr_encode (const uint16_t *pcm_buf, uint8_t *amr_buf, uint8_t *amr_len)
 
int luat_audio_inter_amr_decode (uint16_t *pcm_buf, const uint8_t *amr_buf, uint8_t *amr_len)
 
void luat_audio_inter_amr_deinit (void)
 
void * luat_audio_inter_amr_pcm_address (void)
 

详细描述

函数说明

◆ luat_audio_inter_amr_decode()

int luat_audio_inter_amr_decode ( uint16_t * pcm_buf,
const uint8_t * amr_buf,
uint8_t * amr_len )

◆ luat_audio_inter_amr_deinit()

void luat_audio_inter_amr_deinit ( void )

◆ luat_audio_inter_amr_encode()

int luat_audio_inter_amr_encode ( const uint16_t * pcm_buf,
uint8_t * amr_buf,
uint8_t * amr_len )

◆ luat_audio_inter_amr_init()

void luat_audio_inter_amr_init ( uint8_t is_wb,
uint8_t quality )

◆ luat_audio_inter_amr_pcm_address()

void * luat_audio_inter_amr_pcm_address ( void )

◆ luat_audio_play_clear_stop_flag()

int luat_audio_play_clear_stop_flag ( uint8_t multimedia_id)

清除强制停止播放文件的标识,可以在误操作stop时不影响下一次播放

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
返回
int =0成功,其他失败

◆ luat_audio_play_fast_stop()

int luat_audio_play_fast_stop ( uint8_t multimedia_id)

强制停止播放文件,如果音频解码已经完成了,会停止已经输出到底层驱动的数据播放

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
返回
int =0成功,其他失败

◆ luat_audio_play_file_default_fun()

void luat_audio_play_file_default_fun ( void * param)

◆ luat_audio_play_get_last_error()

int luat_audio_play_get_last_error ( uint8_t multimedia_id)

获取上一次播放结果,在MULTIMEDIA_CB_AUDIO_DONE回调时调用最佳

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
返回
int =0完整的播放完成,<0被用户停止了,>0 TTS失败,或者第几个音频文件解码失败(用户在play_info未设置了解码失败后继续,文件位置+1)

◆ luat_audio_play_get_stream()

void * luat_audio_play_get_stream ( uint8_t multimedia_id)

获取底层播放的stream指针

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
返回
void *stream指针,真正的类型是Audio_StreamStruct

◆ luat_audio_play_global_init()

void luat_audio_play_global_init ( audio_play_event_cb_fun_t event_cb,
audio_play_data_cb_fun_t data_cb,
audio_play_default_fun_t play_file_fun,
audio_play_default_fun_t play_tts_fun,
void * user_param )

音频播放初始化,可以选择是否启用TTS,文件播放功能,用来节省flash空间

参数
event_cb播放时event回调函数
data_cb数据解码回调函数,如果是直接播放原始数据流就不会用到
play_file_fun播放文件的具体处理函数,选择luat_audio_play_file_default_fun进行处理,或者写NULL不启用播放文件的功能
play_tts_fun播放TTS的具体处理函数,选择luat_audio_play_tts_default_fun进行处理,或者写NULL不启用播放TTS的功能
user_param回调函数的用户参数

◆ luat_audio_play_global_init_with_task_priority()

void luat_audio_play_global_init_with_task_priority ( audio_play_event_cb_fun_t event_cb,
audio_play_data_cb_fun_t data_cb,
audio_play_default_fun_t play_file_fun,
audio_play_default_fun_t play_tts_fun,
void * user_param,
uint8_t priority )

音频播放初始化,可以选择是否启用TTS,文件播放功能,用来节省flash空间,可以配置audio任务优先级

参数
event_cb播放时event回调函数
data_cb数据解码回调函数,如果是直接播放原始数据流就不会用到
play_file_fun播放文件的具体处理函数,选择luat_audio_play_file_default_fun进行处理,或者写NULL不启用播放文件的功能
play_tts_fun播放TTS的具体处理函数,选择luat_audio_play_tts_default_fun进行处理,或者写NULL不启用播放TTS的功能
user_param回调函数的用户参数
priorityaudio任务优先级

◆ luat_audio_play_is_finish()

uint8_t luat_audio_play_is_finish ( uint8_t multimedia_id)

是否播放完全部数据

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
返回
uint8_t =1是,=0没有

◆ luat_audio_play_multi_files()

int luat_audio_play_multi_files ( uint8_t multimedia_id,
luat_audio_play_info_t info[],
uint32_t files_num )

播放指定数量的文件或者ROM数组(文件数据直接写成数组形式)

参数
multimedia_id多媒体通道,目前只有0
info文件信息,文件路径或者ROM信息
files_num文件数量
返回
int =0成功,其他失败

◆ luat_audio_play_pause_raw()

int luat_audio_play_pause_raw ( uint8_t multimedia_id,
uint8_t is_pause )

暂停/恢复播放

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
is_pause0恢复,其他暂停
返回
int =0成功,其他失败

◆ luat_audio_play_set_user_lock()

void luat_audio_play_set_user_lock ( uint8_t multimedia_id,
uint8_t onoff )

控制底层播放是否允许结束

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
返回
onoff =0允许结束 其他不允许结束

◆ luat_audio_play_start_raw()

int luat_audio_play_start_raw ( uint8_t multimedia_id,
uint8_t audio_format,
uint8_t num_channels,
uint32_t sample_rate,
uint8_t bits_per_sample,
uint8_t is_signed )

立刻初始化播放未编码的原始音频数据流

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
audio_format音频数据格式,目前只支持PCM,即需要手动解码
num_channels声道数,目前只能1或2
sample_rate采样率,注意只有8K,16K,32K,48K,96K,22.05K,44.1K这些能被支持
bits_per_sample量化bit,只能是16
is_signed量化数据是否带符号,只能是1
返回
int =0成功,其他失败

◆ luat_audio_play_stop_raw()

int luat_audio_play_stop_raw ( uint8_t multimedia_id)

强制停止所有播放,同时底层驱动也会停止输出,不要用于播放文件的结束

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
返回
int =0成功,其他失败

◆ luat_audio_play_tts_default_fun()

void luat_audio_play_tts_default_fun ( void * param)

◆ luat_audio_play_tts_set_resource()

void luat_audio_play_tts_set_resource ( void * address,
void * sdk_id,
void * tts_resource_read_fun )

设置TTS的资源和对应SDKID,TTS资源有很多种。

参数
address资源的flash或者ram地址
sdk_id本质上就是传入AISOUND_SDK_USERID
tts_resource_read_fun读取资源文件的函数,如果是NULL,则使用默认函数,即单纯的拷贝,如果用自己的函数,必须按照ivCBReadResExt定义

◆ luat_audio_play_write_blank_raw()

int luat_audio_play_write_blank_raw ( uint8_t multimedia_id,
uint8_t cnt,
uint8_t add_font )

在开头或者结尾插入多段空白数据,每段数据约100ms

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
cnt段数
add_font是否加载到开头位置 1是,0否
返回
int =0成功,其他失败

◆ luat_audio_play_write_raw()

int luat_audio_play_write_raw ( uint8_t multimedia_id,
uint8_t * data,
uint32_t len )

向底层驱动传入一段原始音频数据

参数
multimedia_idmultimedia_id 多媒体通道,目前只有0
data原始音频数据
len原始音频数据长度
返回
int =0成功,其他失败