基於SnapDragonBoard410c的遠程防盜系統

今天我就基於高通410c的開發板給大家介紹一款遠程人臉識別系統!該系統是基於訊飛人臉識別和Wilddog的遠程視屏傳輸系統。該產品是定位於智能家居這一塊的市場,實時監控家裏門口所有經過的的人,如發現如發現家門口有人徘徊了5分鐘左右,則立即把門口的視屏傳輸給戶主。

監控戶主門口

主要的集成過程如下:

@Override
public void onCreate() {
    super.onCreate();
    //初始化WilddogApp實例,初始化WilddogApp後,即可在項目任意位置獲取數據庫地址引用
    //mAppId即野狗應用ID
    WilddogOptions.Builder builder = new WilddogOptions.Builder().setSyncUrl("http://"+ mAppId +".wilddogio.com");
    WilddogOptions options = builder.build();
    WilddogApp.initializeApp(getApplicationContext(), options);
    //獲取Auth對象
    WilddogAuth auth = WilddogAuth.getInstance();
    //匿名登錄系統
    auth.signInAnonymously().addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(Task<AuthResult> task) {
            if (task.isSuccessful()) {
                //...
                //完成身份認證後初始化 Video SDK,如身份認證失敗則會引起初始化失敗或應用崩潰
                WilddogUser user = task.getResult().getCurrentUser();
                 initVideoSDK();
            }else {
                 throw  new RuntimeException("auth 失敗"+task.getException().getMessage());
            }
        }
    });

    //....
}
private void initVideoSDK(){
    String token = WilddogAuth.getInstance().getCurrentUser().getToken(false).getResult().getToken();
    //初始化 WilddogVideoCall SDK
    WilddogVideoInitializer.initialize(context,videoAppId,token);
    //獲取 WilddogVideo對象
    WilddogVideoCall video=WilddogVideoCall.getInstance();
}

設置 WilddogVideoCall 的代理WilddogVideoCall.Listener 用於監聽通話請求:

video.setListener(new WilddogVideoCall.Listener() {
           @Override
           public void onCalled(Conversation conversation, String s) {

           }

           @Override
           public void onTokenError(WilddogVideoError wilddogVideoError) {

           }
       });

發起通話請求

使用 call(String remoteUid, LocalStream localStream, String data) 來發起通話請求,該方法需要傳遞三個參數:

remoteUid: 通話接收方的 uid,uid 是 WilddogAuth 爲認證用戶分配的唯一身份標識;
localStream: 通話發起方的本地媒體流;
data: 用戶自定義信息,可以爲空。

調用該方法返回 Conversation 實例,用於控制本次一對一視頻通話。

收到通話請求

其他用戶發來通話請求時,用戶可以從 WilddogVideoCall 的listener得到通知,並獲得 Conversation 實例:
public void onCalled(Conversation conversation, String s) {
mConversation = conversation;
Log.d(“log”,s);
}
}

設置通話代理

設置 Conversation 的代理Conversation.Listener用於監聽通話狀態。

conversation.setConversationListener(new Conversation.Listener() {
@Override
public void onCallResponse(CallStatus callStatus) {

}
@Override
public void onStreamReceived(RemoteStream remoteStream) {
}
@Override
public void onClosed() {
}
@Override
public void onError(WilddogVideoError wilddogVideoError) {
}

});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章