常量
常量 |
类型 |
解释 |
---|---|---|
audio.PCM |
number |
PCM格式,即原始ADC数据 |
audio.MORE_DATA |
number |
audio.on回调函数传入参数的值,表示底层播放完一段数据,可以传入更多数据 |
audio.DONE |
number |
audio.on回调函数传入参数的值,表示底层播放完全部数据了 |
audio.BUS_DAC |
number |
硬件输出总线,DAC类型 |
audio.BUS_I2S |
number |
硬件输出总线,I2S类型 |
audio.BUS_SOFT_DAC |
number |
硬件输出总线,软件模式DAC类型 |
audio.start(id, audio_format, num_channels, sample_rate, bits_per_sample, is_signed)
启动一个多媒体通道准备播放音频
参数
传入值类型 |
解释 |
---|---|
int |
多媒体播放通道号,0或者1 |
int |
音频格式 |
int |
声音通道数 |
int |
采样频率 |
int |
采样位数 |
boolean |
是否有符号,默认true |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功true, 失败false |
例子
audio.start(0, audio.PCM, 1, 16000, 16)
audio.write(id, data)
往一个多媒体通道写入音频数据
参数
传入值类型 |
解释 |
---|---|
string |
or zbuff 音频数据 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,否则返回false |
例子
audio.write(0, "xxxxxx")
audio.stop(id)
停止指定的多媒体通道
参数
传入值类型 |
解释 |
---|---|
int |
audio id,例如0 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,否则返回false |
例子
audio.stop(0)
audio.pause(id, pause)
暂停/恢复指定的多媒体通道
参数
传入值类型 |
解释 |
---|---|
int |
audio id,例如0 |
boolean |
onoff true 暂停,false 恢复 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,否则返回false |
例子
audio.pause(0, true) --暂停通道0 audio.pause(0, false) --恢复通道0
audio.on(id, event, func)
注册audio播放事件回调
参数
传入值类型 |
解释 |
---|---|
int |
audio id, audio 0写0, audio 1写1 |
function |
回调方法,回调时传入参数为1、int 通道ID 2、int 消息值,只有audio.MORE_DATA和audio.DONE |
返回值
返回值类型 |
解释 |
---|---|
nil |
无返回值 |
例子
audio.on(0, function(audio_id, msg) log.info("msg", audio_id, msg) end)
audio.play(id, path, errStop)
播放或者停止播放一个文件,播放完成后,会回调一个audio.DONE消息,可以用pause来暂停或者恢复,其他API不可用。考虑到读SD卡速度比较慢而拖累luavm进程的速度,所以尽量使用本API
参数
传入值类型 |
解释 |
---|---|
int |
音频通道 |
string/table |
文件名,如果为空,则表示停止播放,如果是table,则表示连续播放多个文件,主要应用于云喇叭,目前只有EC618支持,并且会用到errStop参数 |
boolean |
是否在文件解码失败后停止解码,只有在连续播放多个文件时才有用,默认true,遇到解码错误自动停止 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,否则返回false |
例子
audio.play(0, "xxxxxx") --开始播放某个文件 audio.play(0) --停止播放某个文件
audio.tts(id, data)
TTS播放或者停止
参数
传入值类型 |
解释 |
---|---|
int |
音频通道 |
string/zbuff |
需要播放的内容 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,否则返回false |
例子
无
audio.playStop(id)
停止播放文件,和audio.play(id)是一样的作用
参数
传入值类型 |
解释 |
---|---|
int |
audio id,例如0 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,否则返回false |
例子
audio.playStop(0)
audio.isEnd(id)
检查当前文件是否已经播放结束
参数
传入值类型 |
解释 |
---|---|
int |
音频通道 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,否则返回false |
例子
audio.isEnd(0)
audio.getError(id)
获取最近一次播放结果,不是所有平台都支持的,目前只有EC618支持
参数
传入值类型 |
解释 |
---|---|
int |
音频通道 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
是否全部播放成功,true成功,false有文件播放失败 |
boolean |
如果播放失败,是否是用户停止,true是,false不是 |
int |
第几个文件失败了,从1开始 |
例子
local result, user_stop, file_no = audio.getError(0)
audio.config(id, paPin, onLevel, dacDelay, paDelay, dacPin, dacLevel, dacTimeDelay)
配置一个音频通道的特性,比如实现自动控制PA开关。注意这个不是必须的,一般在调用play的时候才需要自动控制,其他情况比如你手动控制播放时,就可以自己控制PA开关
参数
传入值类型 |
解释 |
---|---|
int |
音频通道 |
int |
PA控制IO |
int |
PA打开时的电平 |
int |
在DAC启动前插入的冗余时间,单位100ms,一般用于外部DAC |
int |
在DAC启动后,延迟多长时间打开PA,单位1ms |
int |
外部dac电源控制IO,如果不填,则表示使用平台默认IO,比如Air780E使用DACEN脚,air105则不启用 |
int |
外部dac打开时,电源控制IO的电平,默认拉高 |
int |
音频播放完毕时,PA与DAC关闭的时间间隔,单位1ms,默认0ms |
返回值
无
例子
audio.config(0, pin.PC0, 1) --PA控制脚是PC0,高电平打开,air105用这个配置就可以用了 audio.config(0, 25, 1, 6, 200) --PA控制脚是GPIO25,高电平打开,Air780E云喇叭板用这个配置就可以用了
audio.vol(id, value)
配置一个音频通道的音量调节,直接将原始数据放大或者缩小,不是所有平台都支持,建议尽量用硬件方法去缩放
参数
传入值类型 |
解释 |
---|---|
int |
音频通道 |
int |
音量,百分比,1%~1000%,默认100%,就是不调节 |
返回值
返回值类型 |
解释 |
---|---|
int |
当前音量 |
例子
local result = audio.vol(0, 90) --通道0的音量调节到90%,result存放了调节后的音量水平,有可能仍然是100
audio.setBus(id, bus_type)
配置一个音频通道的硬件输出总线,只有对应soc软硬件平台支持才设置对应类型
参数
传入值类型 |
解释 |
---|---|
int |
音频通道,例如0 |
int |
总线类型, 例如 audio.BUS_SOFT_DAC |
返回值
返回值类型 |
解释 |
---|---|
nil |
无返回值 |
例子
audio.setBus(0, audio.BUS_SOFT_DAC) --通道0的硬件输出通道设置为软件DAC audio.setBus(0, audio.BUS_I2S) --通道0的硬件输出通道设置为I2S
audio.debug(on_off)
配置调试信息输出
参数
传入值类型 |
解释 |
---|---|
boolean |
true开 false关 |
返回值
无
例子
无
Next
bit64 - 32位系统上对64位数据的基本算术运算和逻辑运算
Previous
adc - 数模转换文章来源:https://www.toymoban.com/news/detail-733332.html
评论区仅用于讨论文档内容。如有使用问题或新需求,请进支持群讨论或在官方仓库新建issue文章来源地址https://www.toymoban.com/news/detail-733332.html
到了这里,关于LuatOS-SOC接口文档(air780E)--audio - 多媒体音频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!