audio - 音频播放
适用范围
| 层面 | 说明 |
|---|---|
| 运行环境 | LuatOS-Air 脚本框架,展锐 8910 平台(Air724UG / Air722UG / Air795UG / Air720UH 等) |
| 前提条件 | 需音频 codec 与喇叭,且固件带音频驱动 |
| 接口差异 | audio.play 的 type 只支持 "FILE" 与 "TTS" 两种音源 |
| 不适用 | Air780E 及以后跑 LuatOS 的 Cat.1 模组;这些模组的同名库在 osapi 里是另一套接口,不能照抄 |
支持MP3、amr文件播放;
支持本地TTS播放、通话中TTS播放到对端(需要使用支持TTS功能的core软件)
audio.play(priority, type, path, vol, cbFnc, dup, dupInterval)
播放音频
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| priority | number | 音频优先级,数值越大,优先级越高 优先级高的播放请求会终止优先级低的播放 相同优先级的播放请求,播放策略参考:audio.setStrategy接口 |
| type | string | 音频类型,目前仅支持"FILE"、"TTS" |
| path | string | 音频文件路径,跟typ有关 typ为"FILE"时:表示音频文件路径 typ为"TTS"时:表示要播放的UTF8编码格式的数据 |
| vol | number | 可选参数,默认为4 播放音量,取值范围0到7,0为静音 |
| cbFnc | function | 可选参数,默认为nil 音频播放结束时的回调函数,回调函数的调用形式如下:cbFnc(result) result表示播放结果: 0-播放成功结束; 1-播放出错 2-播放优先级不够,没有播放 3-传入的参数出错,没有播放 4-被新的播放请求中止 5-调用audio.stop接口主动停止 |
| dup | bool | 可选参数,默认为nil 是否循环播放,true循环,false或者nil不循环 |
| dupInterval | number | 可选参数,默认为0 循环播放间隔(单位毫秒),dup为true时,此值才有意义 |
返回值
result,bool或者nil类型,同步调用成功返回true,否则返回false
例子
audio.play(0,"FILE","/lua/call.mp3")
audio.play(0,"FILE","/lua/call.mp3",7)
audio.play(0,"FILE","/lua/call.mp3",7,cbFnc)
-- 更多用法参考demo/audio/testAudio.lua
audio.stop(cbFnc)
停止音频播放
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| cbFnc | function | 可选参数,默认为nil 停止音频播放的回调函数(停止结果通过此函数通知用户),回调函数的调用形式为:cbFnc(result) result:number类型 0表示停止成功 |
返回值
nil
例子
audio.stop()
audio.setVolume(vol)
设置喇叭音量等级
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| vol | number | 音量值为0-7,0为静音 |
返回值
bool result,设置成功返回true,失败返回false
例子
audio.setVolume(7)
audio.setCallVolume(vol)
设置通话音量等级
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| vol | number | 音量值为0-7,0为静音 |
返回值
bool result,设置成功返回true,失败返回false
例子
audio.setCallVolume(7)
audio.setMicGain(mode, level)
设置mic增益等级
通话时mic增益在通话建立成功之后设置才有效
录音mic增益设置后实时生效
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| mode | string | 增益类型 "call"表示通话中mic增益 "record"表示录音mic增益 |
| level | number | 增益等级,取值为0-7 |
返回值
bool result,设置成功返回true,失败返回false
例子
audio.setMicGain("record",7),设置录音时mic增益为7级
audio.getVolume()
获取喇叭音量等级
参数
无
返回值
number vol,喇叭音量等级
例子
audio.getVolume()
audio.getCallVolume()
获取通话音量等级
参数
无
返回值
number vol,通话音量等级
例子
audio.getCallVolume()
audio.setStrategy(strategy)
设置优先级相同时的播放策略
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| strategy | number | 优先级相同时的播放策略; 0:表示继续播放正在播放的音频,忽略请求播放的新音频 1:表示停止正在播放的音频,播放请求播放的新音频 |
返回值
nil
例子
audio.setStrategy(0)
audio.setStrategy(1)
audio.setTTSSpeed(speed)
设置TTS朗读速度
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| speed | number | 速度范围为0-100,默认50 |
返回值
bool result,设置成功返回true,失败返回false
例子
audio.setTTSSpeed(70)
audio.setChannel(output, input)
设置音频输入、输出通道
设置后实时生效
参数
| 名称 | 传入值类型 | 释义 |
|---|---|---|
| output | number | 可选参数,默认为2 0:earphone听筒,1:headphone耳机,2:speaker喇叭 |
| input | number | 可选参数,默认为0 0:主mic,3:耳机mic |
返回值
nil
例子
-- 设置为听筒输出:audio.setChannel(0)
-- 设置为耳机输出:audio.setChannel(1)
-- 设置为喇叭输出:audio.setChannel(2)
-- 设置为喇叭输出、耳机mic输入:audio.setChannel(2,3)