本次我将继续为大家讲解基于SnapDragonBoard410c的远程防盗系统的整体架构和开发过程中应注意的问题。我们用户在打开APP时 ,可以实时的获取自己家门的情况。本次我将带大家深入了解一下,关于视频远程传输的问题!
本次Blog的主角为WildDog视频通话SDK. Server端默认接受client的视频通话请求,这样就达到了我们的视屏监控的功能需求了。
Client端被请求时的回调,我们一般默认为接受。
remoteUserInfo = (UserInfo) getIntent().getSerializableExtra("user");
mConversation = WilddogVideoManager.getConversation();
tvNickname.setText(remoteUserInfo.getNickname());
ImageManager.Load(remoteUserInfo.getFaceurl(),civPhotoUrl);
broadcastReceiver = new InviteCancelBroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(intent.getAction().equals(Constant.INVITE_CANCEL)){
finish();
}
}
};
llAccept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 接受 进入通话页
Intent intent = new Intent(AcceptActivity.this,ConversationActivity.class);
intent.putExtra("user",remoteUserInfo);
startActivity(intent);
finish();
}
});
llReject.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 拒绝
mConversation.reject();
finish();
}
});
startRing();
Client 发送通话请求:
LocalStreamOptions localStreamOptions = genLocalStreamOptions();
localStream = video.createLocalStream(localStreamOptions);
localStream.setOnFrameListener(new LocalStream.CameraFrameListener() {
@Override
public void onByteFrame(byte[] bytes, int i, int i1, int i2, long l) {
// TODO 设置美颜效果
frameProcess(bytes, 0, mFirstFrame, true, i, i1, i2);//data 可以传空 根据TextureId进行美颜
mFirstFrame = false;
}
});
localStream.attach(wvvBig);
mConversation = video.call(remoteid, localStream, "conversationDemo");
mConversation.setConversationListener(listener);
startRing();
private Conversation.StatsListener statsListener = new Conversation.StatsListener() {
@Override
public void onLocalStreamStatsReport(LocalStreamStatsReport localStreamStatsReport) {
if (isSelfInBig) {
showStats(localStreamStatsReport, null);
}
}
@Override
public void onRemoteStreamStatsReport(RemoteStreamStatsReport remoteStreamStatsReport) {
if (!isSelfInBig) {
showStats(null, remoteStreamStatsReport);
}
}
};