以前咱們已經有一篇文章講了如何驅動鴻蒙小車,經過網絡控制小車的運行。java
基於鴻蒙系統 + Hi3861 的wifi小車,能夠經過電腦、手機控制json
這一篇咱們來試點不同的:使用語音控制鴻蒙小車。網絡
附件提供能夠直接燒錄的鴻蒙鏡像、修改後的手機java源碼。app
這裏咱們使用到的是訊飛的語音識別功能,你們能夠打開這個網站,申請一個測試帳戶:ide
https://www.xfyun.cn/services/lfasr?ch=bd01-b&b_scene_zt=1&renqun_youhua=648371 函數
通常來講咱們申請體驗包便可,(新用戶禮包須要實名認證):post
領取完無償使用後,咱們建立新應用。測試
應用名稱這些本身根據需求填寫網站
提交後,咱們單擊應用,查看詳情url
咱們下載Android SDK包。
Android SDK包的使用能夠查看文檔。
下載完後,咱們在 IatDemo.java文件的 public void onResult(RecognizerResult results, boolean isLast) 函數中添加咱們控制小車的代碼,如圖:
我這邊會提供我修改後的 IatDemo.java文件 ,你們替換便可。
編譯app,而後獲得安裝包:speechDemo-debug.apk 。安裝到手機。
安裝後,咱們選擇「當即體驗語音聽寫」,而後單擊開始,說出關鍵字「前進」「後退」「向左」「向右」,便可看到小車作出相應的動做
代碼解析:
其中比較重要的是發送小車控制指令,指令咱們採用的是json格式,你們也能夠根據本身需求,修改其它指令。
void send_car(final String msg) { clientThread = new Thread(new Runnable() { @Override public void run() { JSONObject address = new JSONObject(); try { address.put("cmd", msg); address.put("mode", "step"); } catch (JSONException e) { e.printStackTrace(); } try { InetAddress targetAddress = InetAddress.getByName("192.168.1.103"); DatagramPacket packet = new DatagramPacket(address.toString().getBytes(), address.toString().length(), targetAddress, 50001); client.send(packet); } catch (IOException e) { e.printStackTrace(); } } }); clientThread.start(); } [點擊並拖拽以移動]
做者:連志安
想了解更多內容,請訪問:
51CTO和華爲官方戰略合做共建的鴻蒙技術社區
https://harmonyos.51cto.com