日韩美女乱婬AAA高清视频_国产色爱AV资源综合区_国产女同性黄网在线观看_欧美日韩一卡2卡3卡4卡新区乱码_俺来也俺也啪www色_精品久久久久久综合日本_99国内偷揿国产精品人妻_国产蜜芽剧果冻传媒_日本特级aaaaaaaa片_国产偷人妻精品一区二区在线

簡體中文

基于AVAPIs的對講實現(xiàn)

基于AVAPIs的對講實現(xiàn) | TUTK P2P SDK 開發(fā)指南
基于AVAPIs的對講架構(gòu)及主通道復用示意圖

圖 1:基于AVAPIs的對講架構(gòu)及主通道復用示意圖

一、概述

TUTK P2P SDK v3.3+ 版本默認支持數(shù)據(jù)全雙工通信,無需額外創(chuàng)建獨立通道。P2P連接建立后,會自動創(chuàng)建主通道(基于 IOTC 0 通道,通過 avClientStartExavServStartEx 接口參數(shù)綁定),客戶端可通過該主通道同時實現(xiàn)直播視頻播放、音頻監(jiān)聽和對講音頻發(fā)送,無需額外開辟通道資源。

二、音頻格式同步(公版APP標準流程)

對講功能啟動前,APP端需先向設(shè)備查詢支持的音頻格式(編碼方式、采樣率、位寬等),確保兩端音頻參數(shù)一致,避免播放異常。該過程通過 IO 控制指令(具體可參考:公版IOCommand定義)交互完成。
(一)APP端:查詢音頻格式(發(fā)送請求)
APP 調(diào)用 avSendIOCtrl 發(fā)送 IOTYPE_USER_IPCAM_GETAUDIOOUTFORMAT_REQ 指令,傳入攝像頭通道索引,查詢設(shè)備對講支持的音頻格式。
// 查詢音頻格式請求結(jié)構(gòu)體 typedef struct {    unsigned int channel; // camera index(攝像頭索引,多攝像頭場景需指定)    char reserved[4];     // 預留字段,無需賦值 } SMsgAVIoctrlGetAudioOutFormatReq;
(二)設(shè)備端:回復音頻格式(響應請求)
設(shè)備端通過 avRecvIOCtrl 接收查詢請求后,回復 IOTYPE_USER_IPCAM_GETAUDIOOUTFORMAT_RESP 指令,返回支持的音頻參數(shù)。
// 音頻格式響應結(jié)構(gòu)體 typedef struct {    unsigned int channel;      // camera index(與請求的攝像頭索引一致)    int format;                // 音頻編碼格式(參考 ENUM_CODECID 枚舉)    char sample_rate;          // 采樣率(參考 Sample_Rate 枚舉)    char bitdata;              // 位寬(參考 DATABITS 枚舉)    char channels;             // 支持的聲道數(shù)(1=單聲道,2=立體聲)    char avservchannel;        // 對講使用的通道類型:0=子通道;1=主通道;其他=子通道(默認0) } SMsgAVIoctrlGetAudioOutFormatResp;
  • 字段說明:
    • format:音頻編碼格式,取值來自 CodecId 枚舉(如 G711A、AAC 等);
    • sample_rate:采樣率,取值來自 Sample_Rate 枚舉(如 8K、16K 等);
    • bitdata:數(shù)據(jù)位寬,取值來自 DATABITS 枚舉(僅支持8位/16位);
    • avservchannel:推薦使用主通道(填1),復用現(xiàn)有連接資源。

三、對講實現(xiàn)方式(主通道全雙工傳輸)

主通道本身支持全雙工通信,可同時傳輸“設(shè)備→APP的直播音頻”和“APP→設(shè)備的對講音頻”。APP通過特定IO指令通知設(shè)備開啟/關(guān)閉對講,之后通過音頻傳輸API發(fā)送/接收對講數(shù)據(jù)。
(一)核心IO控制指令(SDK內(nèi)置)
對講啟停通過以下2條SDK內(nèi)置IO指令控制(參考SDK Readme.htm第五部分):
  • IOTYPE_USER_IPCAM_SPEAKERSTART:開啟對講(APP→設(shè)備)
  • IOTYPE_USER_IPCAM_SPEAKERSTOP:關(guān)閉對講(APP→設(shè)備)
(二)開啟對講流程
  • 步驟1:APP端發(fā)送開啟指令
    • 音頻格式同步完成后,APP 調(diào)用 avSendIOCtrl 發(fā)送 IOTYPE_USER_IPCAM_SPEAKERSTART 指令,通知設(shè)備準備接收對講音頻;
    • 指令無需額外參數(shù)(參數(shù)長度填0),僅通過指令類型標識操作。
  • 步驟2:APP端啟動音頻采集與發(fā)送
    • APP 啟動本地麥克風采集音頻,按設(shè)備支持的格式(編碼、采樣率等)進行編碼;
    • 調(diào)用 avSendAudioData 接口,通過主通道將編碼后的對講音頻數(shù)據(jù)發(fā)送給設(shè)備。
  • 步驟3:設(shè)備端接收開啟指令并準備接收
    • 設(shè)備通過 avRecvIOCtrl 接收 IOTYPE_USER_IPCAM_SPEAKERSTART 指令,確認開啟對講;
    • 設(shè)備初始化音頻接收緩沖區(qū),調(diào)用 avRecvAudioData 接口監(jiān)聽主通道的對講音頻數(shù)據(jù)。
  • 步驟4:設(shè)備端播放對講音頻
    • 設(shè)備接收音頻數(shù)據(jù)后,按約定格式解碼,通過設(shè)備揚聲器播放,完成“APP→設(shè)備”的對講音頻傳輸。
(三)關(guān)閉對講流程
對講結(jié)束時,APP發(fā)送關(guān)閉指令,設(shè)備停止接收音頻,雙方釋放相關(guān)資源:
  • 步驟1:APP端發(fā)送關(guān)閉指令:APP 調(diào)用 avSendIOCtrl 發(fā)送 IOTYPE_USER_IPCAM_SPEAKERSTOP 指令;
  • 步驟2:APP端停止采集與發(fā)送:關(guān)閉麥克風,停止音頻編碼和 avSendAudioData 調(diào)用;
  • 步驟3:設(shè)備端停止接收與播放:設(shè)備接收關(guān)閉指令后,停止 avRecvAudioData 監(jiān)聽,關(guān)閉揚聲器,釋放音頻緩沖區(qū)。

即刻開啟您的物聯(lián)網(wǎng)之旅

聯(lián)系解決方案專家
Kalay App
資訊安全白皮書
全球?qū)@季?/a>
解決方案
新聞動態(tài)
公司動態(tài)
行業(yè)資訊
媒體報道
永續(xù)發(fā)展
經(jīng)營者的話
社會參與
環(huán)境永續(xù)
公司治理

+86 755 27702549

7×24小時服務(wù)熱線

法律聲明 隱私權(quán)條款

關(guān)注“TUTK”

TUTK服務(wù)盡在掌握

? 2022 物聯(lián)智慧科技(深圳)有限公司版權(quán)所有粵ICP備14023641號
在線咨詢
掃一掃

TUTK服務(wù)盡在掌握

全國免費服務(wù)熱線
+86 755 27702549

返回頂部