imsdroid 學習(初認識)


  由於工作的需要,麥洛最近都在研究語音通話的技術。工作中,一個同事無意發現了開源項目idoubs。idoubs是imsdroid的IOS版本。

  從google以及baidu來看,除了官網http://code.google.com/p/imsdroid/介紹外,有關imsdroid或idoubs貌似的帖子並不是很多。但從官網的介紹可以知道這個項目確實非常強大。於是趕緊check下來學習。注意check out時要使用http://imsdroid.googlecode.com/svn/這個地址,不要使用trunk目錄,作者已經將項目放在了svn這個目錄下了。

  check下來的源碼結構:

  

  imsdroid或idoubs項目是基於doubango,關於這個項目可以到它的官網http://doubango.org/上看看介紹。

  麥洛與iphone的同事試用了一下這個安裝包,看一下通話效果。不知道是不是網絡原因還是服務器原因,語音通話是可以的,很清晰,有一點回音,但視頻卻是很難連接成功,或者傳播的圖像只有一台手機看得到,而另一台則看不到。從源碼上看,它還支持高清(1080p),以及多種編碼格式。而麥洛感興趣的正是它豐富的編碼格式以及網絡傳輸的實現技術。

  由於介紹imsdroid使用的資料實在是少之又少。學習它的原理,只能從看代碼開始。

  從編譯項目開始。使用2.0目錄下的imsdroid,在eclipse中新建一個android項目,可以命名為imsdroid2.0,將branches下的imsdroid下的res,src下的(不包含src)目錄以及manifest文件都copy到新建的imsdroid2.0項目中來。這時候編譯imsdroid2.0是會出錯的。因為有很多類找不到。原因是由於imsdroid項目基於android-ngn-stack這個庫的,作者將其放在了branches下的android-ngn-stack,這個主要是封裝了底層的實現,使用jni來調用c庫。

  所以使用同樣的方法,在eclipse中使用將android-ngn-stack這個庫新建為android項目,並把它作為一個庫。

  方法是:右擊android-ngn-stack 選擇 properties 在彈出的窗口中把 is library 勾選上,如:

  

  然后就在imsdroid2.0中引用這個庫就行了,引用的方法也是一樣的,只是在打開的properties窗口中點擊add...按鈕,將android-ngn-stack添加進來就行了。這時候,imsdroid2.0就可以編譯成功了。

  編譯成功后就可以在手機安裝試用了么?no!

  這里還有一個問題,就是android-ngn-stack是封裝了jni,但真正的實現是c庫,所以必須有一個libxxx.so文件才行。那這個文件在哪里呢?答案看下圖:

  

  將native-debug/libs目錄copy到我們的imsdroid2.0項目中來,就可以了。

  最后,對於doubango這個開源項目http://code.google.com/p/doubango/ 同樣的,要check out 這個項目, 只要http://doubango.googlecode.com/svn/ 就行了,trunk目錄下是空的。

  麥洛也是剛開始學習這個開源項目,如果出現問題也是很正常的。可以給麥洛留言,大家一起學習。

 

  本文是原創博文,如果轉載請注明來源,謝謝!

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM