今天我就基于高通410c的
开发板给大家介绍一款远程人脸识别系统!该系统是基于讯飞人脸识别和Wilddog的远程视屏传输系统。该产品是定位于智能家居这一块的市场,实时监控家里门口所有经过的的人,如发现如发现家门口有人徘徊了5分钟左右,则立即把门口的视屏传输给户主。
主要的集成过程如下:
@Override
public void onCreate() {
super.onCreate();
//初始化WilddogApp实例,初始化WilddogApp后,即可在项目任意位置获取数据库地址引用
//mAppId即野狗应用ID
WilddogOp
tions.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
() {
@Override
public void onComplete(Task 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) {
}
});