示例
-- 這個(gè)庫(kù)屬于底層適配庫(kù), 具體用法請(qǐng)查閱示例 -- demo/multimedia -- demo/tts -- demo/record
常量
常量 |
類型 |
解釋 |
---|---|---|
i2s.MODE_I2S |
number |
I2S標(biāo)準(zhǔn),比如ES7149 |
i2s.MODE_LSB |
number |
LSB格式 |
i2s.MODE_MSB |
number |
MSB格式,比如TM8211 |
i2s.setup(id, mode, sample, bitw, channel, format, mclk)
初始化i2s
參數(shù)
傳入值類型 |
解釋 |
---|---|
int |
i2s通道號(hào),與具體設(shè)備有關(guān) |
int |
模式, 當(dāng)前僅支持0, MASTER|TX|RX 模式, 暫不支持slave. 可選 |
int |
采樣率,默認(rèn)44100. 可選 |
int |
數(shù)據(jù)位數(shù),默認(rèn)16, 可以是8的倍數(shù) |
int |
聲道, 0 左聲道, 1 右聲道, 2 雙聲道. 可選 |
int |
格式, 可選MODE_I2S, MODE_LSB, MODE_MSB |
int |
mclk頻率, 默認(rèn) 8M. 可選 |
返回值
返回值類型 |
解釋 |
---|---|
boolean |
成功與否 |
int |
底層返回值 |
例子文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-725092.html
-- 以默認(rèn)參數(shù)初始化i2s i2s.setup(0) -- 以詳細(xì)參數(shù)初始化i2s, 示例為默認(rèn)值 i2s.setup(0, 0, 44100, 16, 0, 0, 8000000)
i2s.send(id, data, len)
發(fā)送i2s數(shù)據(jù)
參數(shù)
傳入值類型 |
解釋 |
---|---|
int |
通道id |
string |
數(shù)據(jù), 可以是字符串或zbuff |
int |
數(shù)據(jù)長(zhǎng)度,單位字節(jié), 字符串默認(rèn)為字符串全長(zhǎng), zbuff默認(rèn)為指針位置 |
返回值
返回值類型 |
解釋 |
---|---|
boolean |
成功與否 |
int |
底層返回值,供調(diào)試用 |
例子
local f = io.open("/luadb/abc.wav") while 1 do local data = f:read(4096) if not data or #data == 0 then break end i2s.send(0, data) sys.wait(100) end
i2s.recv(id, buffer, len)
接收i2s數(shù)據(jù),注意在數(shù)據(jù)在回調(diào)時(shí)已經(jīng)存放在zbuff里,目前只有air780e系列支持
參數(shù)
傳入值類型 |
解釋 |
---|---|
int |
通道id |
zbuff |
數(shù)據(jù)緩存區(qū) |
int |
單次返回的數(shù)據(jù)長(zhǎng)度,單位字節(jié),必須與傳入的zbuff的大小一致 |
返回值
返回值類型 |
解釋 |
---|---|
boolean |
成功與否 |
例子
local buffer = zbuff.create(3200) local succ = i2s.recv(0, buffer, 3200);
i2s.close(id)
關(guān)閉i2s
參數(shù)
傳入值類型 |
解釋 |
---|---|
int |
通道id |
返回值
返回值類型 |
解釋 |
---|---|
nil |
無(wú)返回值 |
例子
i2s.close(0)
i2s.on(id, func)
注冊(cè)I2S事件回調(diào)
參數(shù)
傳入值類型 |
解釋 |
---|---|
int |
i2s id, i2s0寫0, i2s1寫1 |
function |
回調(diào)方法 |
返回值
返回值類型 |
解釋 |
---|---|
nil |
無(wú)返回值 |
例子
i2s.on(0, function(id, buff) if buff then log.info("i2s get data in zbuff") else log.info("i2s tx one block done") end end)
i2s.txStat(id)
獲取i2s的發(fā)送緩沖區(qū)狀態(tài)
參數(shù)
傳入值類型 |
解釋 |
---|---|
int |
i2s id, i2s0寫0, i2s1寫1 |
return |
底層緩沖區(qū)的總大小 |
return |
底層緩沖區(qū)的剩余待發(fā)送數(shù)據(jù) |
返回值
無(wú)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-725092.html
例子
-- 讀取發(fā)送緩沖區(qū)的狀態(tài), 從而判斷是否需要繼續(xù)傳入音頻數(shù)據(jù) local max, remain = i2s.txStat(0) log.info("i2s發(fā)送緩沖區(qū)狀態(tài)", max, remain)
到了這里,關(guān)于LuatOS-SOC接口文檔(air780E)-- i2s - 數(shù)字音頻的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!