1. 程式人生 > >基於linphone android sdk 的voip語音、視訊通話 教程一、註冊

基於linphone android sdk 的voip語音、視訊通話 教程一、註冊

1.介紹

liblinphone官網除了提供了完整的原始碼下載外,還提供了liblinphone-android-sdk 的下載。由於原始碼複雜、難編譯。。。,但你可以使用sdk開發。官網及網上的使用教程很少,所以我把他寫出來 在之前需準備一臺sip伺服器  我用的freeswitch  

2.下載

sdk 下載地址http://www.linphone.org/technical-corner/liblinphone/downloads  

下載安卓的sdk 就行了  不是下載原始碼大概15m左右吧

3. 解壓拿到liblinphone-sdk.aar  由於是aar的 哎 。。這個是一個android studio的程式 如果你的開發平臺是這個  你可以匯入裡面作為一個模組就行了 由於下載了個是最新的可以建立安卓8的 建立低版本的有各種蛋疼的問題所以放棄改用eclipse  非eclipse 可以跳過這段到4( 本文基於android5.1使用的 官網https://wiki.linphone.org/xwiki/wiki/public/view/Lib/Gettin提供了aar的使用)

  • 修改aar為zip
  •  解壓到和到時候安卓工程同目錄下
  • 把classes.jar和jni目錄下的所有檔案考到libs下
  • 刪除jni目錄
  • 建立project.properties 寫入
  •        target=android-22
  •        android.library=true
  • 最後將工程匯入eclipse
  • ok

4.建立android工程

這裡建立一個android 5.1的專案

在引進sdk

出現紅色的?那就是sdk和專案沒在一個目錄  eclipse bug

官網寫了一個簡單的使用說明

How to use the SDK

There is a 

documentation (javadoc)  of the methods wrapped above the linphone C layer to be used in your Android application available.

You can also download the source code of Linphone Android (see the Source Code part of this page) and take a look either at the LinphoneMini project in the sample/ folder or at the tutorials in the submodules/linphone/coreapi/help/java/org/linphone/core/tutorials/ folder.

看來還是要下載下原始碼(下載麻煩的可以到這裡下載https://download.csdn.net/download/java_lilin/10452836 主要是不成功git  )

找這兩個資料夾 sample/    submodules/linphone/coreapi/help/java/org/linphone/core/tutorials/  

把sample裡面的res、xml的許可權、src下的LinphoneMiniUtils.java  LinphoneMiniManager.java考到新建的工程

許可權新增 <!--電池許可權-->
     <uses-permission android:name="android.permission.WAKE_LOCK"/> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在LinphoneMiniActivity.java裡面的以下程式碼考到自己的activity裡面

private LinphoneMiniManager mManager; 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 

mManager = new LinphoneMiniManager(this);

....................................

protected void onDestroy() {
mManager.destroy(); 
super.onDestroy();

}

此時LinphoneMiniManager.java 出現報錯

一個是沒這個方法多了個@Override  另外是一個是少了一個string的引數  會java的都能改

最後在實現下沒有實現的方法就不會有錯了

ok  環境已經準備好了

5、開始註冊  註冊的時候就簡單點選一個按鈕 輸出 註冊成功

我們在activity_main.xml 裡面新增

<TextView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:id="@+id/id_text_status"
        android:textSize="20dip"

        android:text="註冊狀態" />

  <Button
           android:layout_marginTop="20dip"
           android:id="@+id/id_btn_reg"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"

           android:text="註冊" />

設定點選

  ((Button)this.findViewById(R.id.id_btn_reg)).setOnClickListener(this);

點選方法  (裡面的就是sip地址、密碼 、埠 )

String sipAddress="sip:[email protected]",password="12345"   

mManager.lilin_reg(sipAddress, password,"5060"); 

在LinphoneMiniManager.java新增

public void lilin_reg(String sipAddress,String password,String port) throws LinphoneCoreException{

LinphoneAddress address = lcFactory.createLinphoneAddress(sipAddress);
String username = address.getUserName();

String domain = address.getDomain(); 

LinphoneProxyConfig[] proxyConfigList = mLinphoneCore.getProxyConfigList();
for (LinphoneProxyConfig linphoneProxyConfig : proxyConfigList) {
mLinphoneCore.removeProxyConfig( linphoneProxyConfig);
}//刪除原來的  

mLinphoneCore.addAuthInfo(lcFactory.createAuthInfo(username, password, null, domain+":"+port)); 
// create proxy config
LinphoneProxyConfig proxyCfg = mLinphoneCore.createProxyConfig(sipAddress, domain+":"+port, null, true);
proxyCfg.enablePublish(true);
proxyCfg.setExpires(2000);
mLinphoneCore.addProxyConfig(proxyCfg); // add it to linphone

mLinphoneCore.setDefaultProxyConfig(proxyCfg);//註冊一次就好了  下次啟動就不用註冊

}

再到方法添加註冊輸出

@Override
public void registrationState(LinphoneCore lc, LinphoneProxyConfig cfg,
RegistrationState cstate, String smessage) {

Log.e("lilin Registration state: " + cstate + "(" + smessage + ")");

}

啟動安卓測試點選按鈕輸出  lilin Registration state: xx(registered successfully)表示註冊成功了 

未完待續  更多到部落格列表

對此感興趣的可以加群261074724 可免費下載東西哦哦哦哦哦

相關推薦

基於linphone android sdkvoip語音視訊通話 教程註冊

1.介紹 liblinphone官網除了提供了完整的原始碼下載外,還提供了liblinphone-android-sdk 的下載。由於原始碼複雜、難編譯。。。,但你可以使用sdk開發。官網及網上的使用教程很少,所以我把他寫出來 在之前需準備一臺sip伺服器  我用的fr

基於linphone android sdkvoip語音視訊通話 教程sip語音撥打接聽

1.在實現撥打之前我們先把註冊狀態顯示到view上  讓LinphoneMiniManager extends Service 便於傳送訊息到MainActivity.java 別忘了AndroidManifest.xml的註冊service <serv

Android視訊播放框架Vitamio

簡述:vitamio是一款android以及ios視訊播放的開源框架。 (一)匯入Lib的Module 1、從官網上http://vitamio.org/下載官方的demo後,直接解壓,解壓後會得到VitamioDemo 和VitamioBundle。VitamioBu

Android中WebView的定位功能視訊全屏播放下載功能頁面Url的處理進度條處理

一、WebView 初始化設定 /** * webview初始化設定 */ private void initWebViewSettings() { WebSettings webSettings = wv_web.g

Android Studio安裝部署系列】四十Android Studio安裝Alibaba Java Coding Guidelines插件(檢查代碼規範)

實現 gui 參考 阿裏巴巴 style oid lips 基本上 setting 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 前言 該插件主要是對今年發布的《阿裏巴巴 Java 開發規約》的一個延伸,它以一個 IDE 的插件存在,可以自動對手冊中的

RK3288 平臺(Android 5.1)+ PN548 除錯流水賬(前期編譯篇)

一、獲取原始碼 客戶向瑞芯微技術視窗申請SDK 二、SDK 編譯 1.JDK 安裝 Android5.1 系統編譯依賴於 JDK7。 編譯之前需安裝 JDK7,並配置 JAVA 環境變數。例如, 安裝路徑為/usr/lib/jvm/java

搭建電影網站詳細教程——域名與伺服器

前言:這幾天閒著無聊想要搭建一個電影網站,沒事的時候可以看個電影,瀏覽量多了的話還可以掛個廣告。^_^ 上網找了找教程,發現沒有特別詳細的,就準備自己寫一個,以後有需要可以看一下。 一、購買域名與伺服器 我租的是阿里的域名以及伺服器,對比了一下BAT三家公司,阿里的比較便宜。

Ubuntu16.04中安裝SqlServer並建立連線資料庫跨平臺遷移教程連結各種程式語言連線資料庫的教程連結

安裝SQL server 1、匯入公鑰 wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - 2、註冊mssqlserver Ubuntu儲存庫 sudo

iOS下WebRTC音視訊通話

在iOS下做IM功能時,難免都會涉及到音訊通話和視訊通話。QQ中的QQ電話和視訊通話效果就非常好,但是如果你沒有非常深厚的技術,也沒有那麼大的團隊,很難做到QQ那麼快速和穩定的通話效果。 但是利用WebRTC技術,即使一個人也能夠實現效果不錯的音視訊通話。本篇

FFmpeg開發教程FFmpeg 版 Hello world

sample roc rop pbm fec 然而 封裝 包含 視頻 本系列根據項目ffmpeg-libav-tutorial翻譯而來 Chapter 0 - 萬物之源 —— hello world 然而,本節的程序並不會在終端打印“Hello world”,而是會打印原視

iOS 基於環信SDK實現即時通訊-語音視訊聊天

這裡建立的專案是在文字聊天專案:http://blog.csdn.net/create_pro/article/details/62420040基礎上新增的功能,所以可能需要先去連結文章地址檢視整合過程,具體專案連結在下面,這裡只介紹使用環信SDK整合語音、視訊

集成Android免費語音合成功能(在線離線離在線融合)

com nvi sid 審核 contacts lai 音量 ant demo 集成Android免費語音合成功能(在線、離線、離在線融合),有這一篇文章就夠了(離線)集成Android免費語音合成功能(在線、離線、離在線融合),有這一篇文章就夠了(離在線融合) 轉

關於基於Linphone的視頻通話Android端開發過程中遇到的問題

浪費 phone 模式 需要 class 通話 其他 了解 同時 關於基於Linphone的視頻通話Android端開發過程中遇到的問題     運用開源項目Linphone的SDK進行開發,由於是小組進行開發,我主要負責的是界面部分。   由於當時是初學Android開發

配置android開發環境安裝Android studioAndroid sdk(配置react native的Android環境)

配置react native的Android環境的步驟比較多,所以單獨提取出來記錄: 提示:如果是想搭建android開發環境安裝Android studio,本記錄貼也適用的 1. 安裝 Android Studio,配置sdk 2.建立一個android專案並執行測試

ubuntu16.04安裝jdkAndroid StudioAndroid Sdk

第一次接觸ubuntu,研究安裝這些東西還好只花了兩天的時間。現在記錄一下,這兩天碰到的坑,以防以後再掉進去。 首先,我前幾天先是安裝了ubuntu kylin,然後安裝 android 開發環境,但是碰到很多問題,後來上網搜尋了一下 大家對ubuntu kylin的看法, 發現 貶 &g

Android Studio中下載Android SDK的兩種方式(Android Studio3.0windows)

方式一、設定HTTP Proxy 1. 開啟Settings 2. 點選HTTP Proxy,選擇Manual proxy configuration: 設定 Host name 為:mirrors.neusoft.edu.cn 設定 Port number 為:80

android形狀屬性鎖屏密碼動態模糊kotlin專案抖音動畫記賬app視訊播放器等原始碼

Android精選原始碼 直觀瞭解Android的“形狀”屬性如何影響Drawable的外觀。 一個靈活的視訊播放器, 可替換播放器核心。 android鎖屏輸入密碼功能原始碼 背景動態模糊方案,元件實現類對bitmap模糊處理的各類算... 簡單天氣,帶

android平臺下基於ffmpeg和ANativeWindow實現簡單的視訊播放器

音視訊實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio使用c

原始碼中iOS短視訊開發Android短視訊開發的視訊上傳功能只需要這段原始碼

在原始碼中上傳視訊功能是iOS短視訊開發和Android短視訊開發中不可忽視的中心,看成是APP程式原始碼存在的意義。相信朋友們也能夠理解它在APP開發中的地位,現在這段程式碼就免費提供給大家了。 /*上傳視訊*/   @Override   pu

用Python教你微信防撤回(文字圖片語音視訊名片等...)

大家在使用微信過程中,有時候訊息還沒看到,就被撤回了。畢竟好奇心大家都有,明知到訊息被撤回了,就更想去看一下是什麼內容心裡想著萬一是女神給我表白了呢.. 今天就用Python來做個微信防撤回的小功能。支援文字、圖片、語音、視訊、名片的防撤回。 思路:利用itchat庫將每次接收到的訊息進行快取。監