做第三方服務的整合,無非就是按照官方文件,完成SDK的整合以及自己需要的功能實現。不管做哪個SDK的整合,都會碰到這樣或者那樣的坑,這也是很難避免,其實我們做SDK的整合就是一個趟坑的過程。接下來看看叔整合Agora SDK遇到了哪些問題。
1. 不能在Android6.0的x86模擬器上執行
如果我們Demo在Android6.0的x86模擬器上執行會報錯:
java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.leon.laotieparty-1/lib/x86/libHDACEngine.so: has text relocations複製程式碼
但是在6.0以下的x86模擬器上可以正常執行,這是因為SDK提供給我們的x86庫是存在問題的。
2. 官方文件不詳細
Agora SDK暫時沒有提供API的介面文件,只提供了一些核心API的呼叫說明。我們在呼叫一些API的時候,並不能很好理解API的功能和含義。比如在VideoCanvas類中有三個渲染模式:
public static final int RENDER_MODE_HIDDEN = 1;
public static final int RENDER_MODE_FIT = 2;
public static final int RENDER_MODE_ADAPTIVE = 3;複製程式碼
官方文件沒有對這三種模式有介紹,這裡經過試驗,如果呼叫
mRtcEngine.setupLocalVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, mLocalUid));複製程式碼
不使用RENDER_MODE_HIDDEN, 視訊內容就不會填充滿SurfaceView。
3. SDK封裝
個人認為Agora SDK的封裝程度可以再高一點,讓開發者幾行程式碼就能實現基本的功能。甚至可以對UI層做一次封裝,提供UI的SDK,類似環信的EasyUI庫,因為視訊聊天介面邏輯還是比較複雜的。如果提供了這樣的UI庫,那麼開發者就能迅速的實現功能和介面,然後再根據自己的需求做一些定製化。
不管怎麼說,Agora又是一個優秀的國產PaaS, 陌陌和小米都在使用它,希望它變得越來越好用。
老鐵,一起來開Party(一) —— 聲網Agora SDK整合
老鐵,一起來開Party(二) —— 聲網Agora SDK實踐