本篇文章以Air724UG模組為例,解讀低功耗4G模組軟件的語音通話,呈現(xiàn)實用教程供大家參考。
Air724UG模塊的4G通信功能,通過VoLTE技術(shù)實現(xiàn)高清語音通話。
在通話過程中,聲音信號通過 MIC 捕捉并轉(zhuǎn)換為數(shù)字音頻數(shù)據(jù),經(jīng)4G網(wǎng)絡(luò)實時傳輸至對方設(shè)備。同時,Air724UG 支持揚聲器(Speaker)輸出、耳機(Headset)輸出以及聽筒(Handset)輸出等多種音頻輸出模式,確保用戶在不同場景下都能獲得清晰的通話體驗。
這一應(yīng)用廣泛適用于物聯(lián)網(wǎng)設(shè)備中的遠程通信、語音交互等場景,為用戶提供便捷、高效的通話服務(wù)。
二、準(zhǔn)備硬件環(huán)境
古人云:工欲善其事,必先利其器。在深入介紹本功能示例之前,我們首先需要確保以下硬件環(huán)境的準(zhǔn)備工作已經(jīng)完成。
2.1 Air724UG 開發(fā)板
本 demo 使用的是 Air724UG_A14 開發(fā)板,如下圖所示:
此開發(fā)板的詳細使用說明參考:
https://docs.openluat.com/air724ug/product/
Air724UG 產(chǎn)品手冊中的開發(fā)板硬件資料中《EVB_Air724UG_A14 開發(fā)板使用說明.pdf》;開發(fā)板使用過程中遇到任何問題,可以直接參考這份使用說明 pdf 文檔。
2.2 SIM 卡
請準(zhǔn)備一張可正常上網(wǎng)的SIM卡,該卡可以是物聯(lián)網(wǎng)卡(一般不能支持)或您的個人手機卡。
特別提醒:
請確保SIM卡未欠費且網(wǎng)絡(luò)功能正常,以便順利進行后續(xù)操作。
2.3 PC 電腦
請準(zhǔn)備一臺配備 USB 接口且能夠正常上網(wǎng)的電腦。
電腦操作系統(tǒng)為:
WIN7以及以上版本的WINDOWS系統(tǒng)。
2.4 小喇叭
2.5 數(shù)據(jù)通信線
請準(zhǔn)備一根用于連接 EVB_Air724UG_A14 開發(fā)板和 PC 電腦的數(shù)據(jù)線,該數(shù)據(jù)線將實現(xiàn)業(yè)務(wù)邏輯的控制與交互。
USB 數(shù)據(jù)線:此數(shù)據(jù)線不僅用于為測試板供電,還用于查看數(shù)據(jù)日志。其一端為 Micro-B 接口(俗稱老安卓口),用于連接 EVB_Air724UG_A14 開發(fā)板;另一端為標(biāo)準(zhǔn) USB 接口,連接 PC 電腦。
2.6 組裝硬件環(huán)境
2.6.1 請按 SIM 卡槽指示方向正確插入 SIM 卡,避免插反損壞
通常,插入 SIM 卡的步驟如下:
將 SIM 卡的金屬卡槽下滑打開。
平穩(wěn)地將 SIM 卡放入卡槽。
上滑關(guān)閉卡槽。
2.6.2 USB 數(shù)據(jù)線,連接電腦和 EVB_Air724UG_A14 開發(fā)板,如下圖所示:
2.6.3 小喇叭和 EVB_Air724UG_A14 開發(fā)板連接,如下圖所示:
三、準(zhǔn)備軟件環(huán)境
“凡事預(yù)則立,不預(yù)則廢?!痹谠敿氷U述本功能示例之前,我們需先精心籌備好以下軟件環(huán)境。
3.1 Luatools 工具
要想燒錄 LuatOS 固件到 4G 模組中,需要用到的調(diào)試工具:Luatools;
下載地址:
https://docs.openluat.com/Luatools/
Luatools 工具集具備以下幾大核心功能:
一鍵獲取最新固件:自動連接服務(wù)器,輕松下載最新的模組固件。
固件與腳本燒錄:便捷地將固件及腳本文件燒錄至目標(biāo)模組中。
串口日志管理:實時查看模組通過串口輸出的日志信息,并支持保存功能。
串口調(diào)試助手:提供簡潔的串口調(diào)試界面,滿足基本的串口通信測試需求。
Luatools 下載之后, 無需安裝,放入新建的文件夾后點擊 Luatools_v3.exe 運行,出現(xiàn)如下界面,就代表 Luatools 安裝成功了:
3.2 燒錄代碼
首先要說明一點:腳本代碼, 要和固件的 LuatOS-Air_V4030_RDA8910_TTS_NOLVGL_FLOAT.pac(注:支持 LCD,字庫,圖片,TTS,WIFI Scan,SD 卡,VOLTE) 文件一起燒錄。
整體壓縮文件:內(nèi)含有四個文件,如圖所示。
3.2.1 壓縮文件:完整文件包
https://docs.openluat.com/air724ug/luatos/app/audio/volte/
3.2.2找到燒錄的固件文件
官網(wǎng)下載,底層 core 下載地址:
https://docs.openluat.com/air724ug/luatos/firmware/
3.2.3正確連接電腦和 4G 模組電路板
使用帶有數(shù)據(jù)通信功能的數(shù)據(jù)線,不要使用僅有充電功能的數(shù)據(jù)線;
3.2.4識別 4G 模組的 BOOT 引腳
在下載之前,要用模組的 BOOT 引腳觸發(fā)下載。
具體到 EVB_Air724UG_A14 開發(fā)板:
當(dāng)我們模塊沒開機時,按著下載模式鍵然后長按開機鍵開機。
當(dāng)我們模塊開機時,按著下載模式鍵然后點按重啟鍵即可。
3.2.5識別電腦的正確端口
判斷是否進入 BOOT 模式:
模塊上電,如果是正常開機運行(沒有進入boot下載模式),此時在電腦的設(shè)備管理器中,查看串口設(shè)備,如下圖所示(會出現(xiàn)3個或者4個端口):
先按下載模式再按一下重啟,會出現(xiàn)一個端口表示進入了 BOOT 下載模式,如下圖所示:
一旦進入了boot下載模式,表示硬件連接上已經(jīng)處于就緒狀態(tài),此時就可以使用Luatools工具進行燒錄了!
3.2.6新建項目
首先,確保你的 Luatools 的版本大于或者等于 3.0.6 版本.
在 Luatools 的左上角上有版本顯示的,如圖所示:
Luatools 版本沒問題的話, 就點擊 Luatools 右上角的“項目管理測試”按鈕,如下圖所示:
這時會彈出項目管理和燒錄管理的對話框,如下圖:
3.2.7開始燒錄
選擇 Air724ug 開發(fā)板對應(yīng)的底層 core 和 main.lua 腳本文件。下載到板子中。
一直按下載模式按鍵,再按一下重啟,然后點擊下載底層和腳本,如圖所示:
出現(xiàn)如圖所示,表示已進入 BOOT 模式,可以松開下載模式按鍵,等待下載完成。
下載完成,如圖所示
四、音頻應(yīng)用-通話(VoLTE)基本用法
4.1 本教程實現(xiàn)的功能定義:
CC 庫在 EVB_Air724UG_A14-LuatOS 中扮演了關(guān)鍵角色,它提供了一種高效、靈活且用戶友好的呼叫控制解決方案。本次介紹的目標(biāo)是幫助開發(fā)者迅速了解并精通 CC 庫的 API 接口,以便在 VoLTE 通話中實現(xiàn)精確的呼叫管理和控制功能。
4.2 文章內(nèi)容引用
EVB_Air724UG_A14 開發(fā)板軟硬件資料 :
EVB_Air724UG_A14 產(chǎn)品手冊:https://docs.openluat.com/air724ug/product/
以下接口函數(shù)不做詳細介紹,可通過此鏈接查看具體介紹:
audio_API:
https://doc.openluat.com/wiki/21?wiki_page_id=2327#API_9
4.3 API 接口詳解
4.3.1 cc.anyCallExist()
解說:cc.anyCallExist 用于檢查當(dāng)前是否存在任何活動的通話。這個 API 不需要任何參數(shù)。
參數(shù):
無
返回值:
布爾值(true 或 false):如果存在活動的通話,則返回 true;否則返回 false。
舉例:
4.3.2 cc.getState(num)
解說:cc.getState 用于獲取指定通話的狀態(tài)。它接收一個通話標(biāo)識符(可能是通話句柄或電話號碼,具體取決于實現(xiàn))作為參數(shù),并返回一個表示通話狀態(tài)的值(通常是枚舉或常量)。
參數(shù):
num:通話標(biāo)識符(電話號碼)。
返回值:
通話狀態(tài)值(枚舉或常量):表示指定通話的當(dāng)前狀態(tài),如空閑、來電、正在撥打、已接通、保持等。
舉例:
4.3.3 cc.dial(num, delay)
解說:cc.dial 用于撥打一個電話號碼。它接收兩個參數(shù):要撥打的電話號碼和一個可選的延遲時間(以秒為單位),在撥打之前可以等待一段時間。
參數(shù):
num:要撥打的電話號碼。
delay(可選):可選參數(shù),默認(rèn)為0延時 delay 毫秒后,才發(fā)起呼叫。
返回值:
bool result,true 表示允許發(fā)送 at 命令撥號并且發(fā)送 at,false 表示不允許 at 命令撥號。
舉例:
4.3.4 cc.hangUp(num)
解說:cc.hangUp 用于掛斷指定通話。它通常接收一個通話標(biāo)識符(如通話句柄或電話號碼)作為參數(shù),盡管在某些實現(xiàn)中可能不需要參數(shù)(如果只有一個活動通話)。
參數(shù):
num(可選):號碼,若指定號碼通話狀態(tài)不對,則直接退出,不會執(zhí)行掛斷,若掛斷時會掛斷所有電話。
返回值:
無。
舉例:
4.3.5 cc.dtmfDetect(enable, sens)
解說:cc.dtmfDetect 用于啟用或禁用雙音多頻(DTMF)信號的檢測。它接收兩個參數(shù):一個布爾值表示是否啟用檢測,以及一個可選的靈敏度值。
參數(shù):
enable:可選參數(shù),默認(rèn)為niltrue 使能,false 或者 nil 為不使能。
sens(可選):可選參數(shù),默認(rèn)為3靈敏度,最靈敏為 1。
返回值:
無。
舉例:
4.3.6 cc.accept(num)
解說:cc.accept 用于接聽傳入的通話。它通常接收一個通話標(biāo)識符作為參數(shù),盡管在某些實現(xiàn)中可能不需要(因為通常只有一個傳入的通話等待接聽)。
參數(shù):
num(可選):號碼,若指定號碼通話狀態(tài)不對,則直接退出,不會接通。
返回值:
無
舉例:
4.3.7 cc.transVoice(data, loop, downLinkPlay)
解說:cc.transVoice 通話中發(fā)送聲音到對端,必須是 12.2K AMR 格式。
參數(shù):
data:12.2K,AMR 格式的數(shù)據(jù)。
loop:可選參數(shù),默認(rèn)為nil是否循環(huán)發(fā)送,true 為循環(huán),其余為不循環(huán)。
downLinkPlay:可選參數(shù),默認(rèn)為nil聲音是否在本端播放,true 為播放,其余為不播放。
返回值:
布爾值或狀態(tài)碼:表示傳輸操作是否成功啟動。具體返回值可能因?qū)崿F(xiàn)而異。
舉例:
4.3.8 cc.sendDtmf(str, playtime, intvl)
解說:cc.sendDtmf 用于在通話中發(fā)送雙音多頻(DTMF)信號。它接收三個參數(shù):一個包含 DTMF 字符的字符串,每個字符的播放時間,以及字符之間的間隔。
參數(shù):
str:dtmf 字符串,僅支持?jǐn)?shù)字、ABCD*#。
playtime:可選參數(shù),默認(rèn)為100每個 dtmf 播放時間,單位毫秒。
intvl:可選參數(shù),默認(rèn)為100兩個 dtmf 間隔,單位毫秒。
返回值:
無
舉例
五、音頻應(yīng)用整體演示
5.1 音頻應(yīng)用-錄音成果演示與深度解析:視頻 + 圖文全面展示
5.1.11完整實例深度剖析
六、總結(jié)
CC 庫的通話管理 API 接口共同構(gòu)成了通話控制的核心功能,使開發(fā)者能夠高效地管理通話的啟動、掛斷、接聽、參數(shù)配置以及附加的通話處理功能。通過合理利用這些接口,開發(fā)者可以構(gòu)建出具備出色通話體驗的應(yīng)用程序,滿足用戶在多種通話場景下的需求。同時,也需關(guān)注接口之間的協(xié)同配合,以確保通話功能的流暢性和可靠性。
七、常見問題
打不了電話,確認(rèn)能不能正常注冊上網(wǎng)絡(luò),有沒有欠費。確認(rèn)卡是否開通 VOLTE 功能, 只有開通 VOLTE 功能才能進行語音通話。固件是否支持 VOLTE 功能,固件需要支持 VOLTE 功能。注:建議使用手機卡測試,普通物聯(lián)網(wǎng)卡可能不支持 VOLTE 功能。
audio.setMicGain()通話中設(shè)置 mic 增益,必須在通話建立以后設(shè)置。
暫不支持視頻通話,且因為只有 30W 像素,效果較差。
八、擴展
通話過程中給對端播放音頻文件:demo 有案例打開代碼中注掉的部分即可進行測試,如圖所示。
分享完畢
審核編輯 黃宇
-
4G
+關(guān)注
關(guān)注
15文章
5517瀏覽量
118973 -
低功耗
+關(guān)注
關(guān)注
10文章
2396瀏覽量
103670
發(fā)布評論請先 登錄
相關(guān)推薦
評論