① android 區域網實時語音聊天音頻流用什麼編
一般如果應用需要進行大量數學運算時,推薦使用JNI在Java中調用C/C++編寫的動態庫,Java只負責邏輯和界面用戶操作的相應,
你這個APP很簡單分為以下幾個模塊
界面,與用戶進行交互,需要具備Android界面的編程;
網路傳輸,需要掌握Java網路socket編程的知識,使用TCP傳輸編碼後的音頻幀;
語音編解碼模塊,由兩部分構成。一是c/c++編寫的動態庫,二是Java聲明本地native函數,並將c/c++實現的native函數進行封裝,方便Java調用。這部分需要掌握Java中JNI使用的知識,c/c++編程,語音處理的方面的知識,例如數字信號處理。
而c/c++寫的庫一般不是我們自己實現的,而是引入第三方開源代碼,這里的選擇有很多,我了解到的有
ffmeg,很常用,就連暴風影音和QQ音樂據說用了他們的開源庫,而沒有遵守開源協議而進入了他們的黑名單。
speex,是國外的開源庫,現已被Opus取代,但是speex多了一個預處理功能,例如降噪、自動增益、迴音消除等等。
Superpowered,跨平台的,低延遲,功能多。
補充一點,Android現已支持純C++的開發了,這個就需要NDK的配合,寫出NativeActivity,然後就可以直接在C++中調用第三方的庫了,而不用JNI這樣繁瑣,但是由於剛出來,教程不多,需要具備很多嵌入式、音視頻採集處理的開發經驗。
② 有人用SIP做過android客戶端的多人語音通話嗎
我在這里先給出我了解到的資料。 相關技術:
1.sip 2.nat穿越 3.語音編解碼 4.語音傳輸(rtp)
以上四個技術點其實就是sip電話裡面的四個模塊,sip負責會話創建、維護、中斷等;nat穿越就是傳說中的p2p打洞,需要stun伺服器配合。將語音數據按照某種格式編碼,交給傳輸層傳輸,傳輸通常是基於udp的rtp流。
相關協議:
1.sip 2.sdp 3.stun、turn、ice 4.rtp
sip,Session Initiation Protocol,會話初始協議是一個協議棧,集合了注冊,呼叫,接聽,掛斷等相關協議;sdp是會話描述協議,我的理解TA是讓兩個通訊方指定通訊規則,比如用何種協議傳輸,音頻是何種格式等等,stun、turn、ice是nat穿越使用的,stun採用p2p打洞,turn採用的是轉發,ice只是考慮當前環境適合何種方案,然後選擇相應解決辦法。rtp是實時傳輸協議,TA其實包括rtp和rtcp兩個協議,負責將語音數據的傳輸。
③ android 開發怎麼實現語音通話
android開放實現語音通話最快的方式直接用現成SDK,推薦zego實時語音通話sdk.
以 2 人間的實時語音為例,主要流程如下:
④ android 區域網對講機怎麼用
本對講機集實時語音對講、文字、表情和文件傳輸與一身。使用IP廣播機制,實現同一區域網段內的語音廣播。使用本對講機,只使用本地wifi即可以實現辦公室內的語音會議,不用打電話,無需話費和流量。適合辦公室通訊、學校寢室間溝通等。
⑤ android上如何實時語音聊天
android開放實現語音通話最快的方式直接用現成SDK,可以試試ZEGO即構科技的實時語音SDK,實現流程也比較便捷,通過四行代碼,三十分鍾就可以搭建聊天場景了