您的位置:首页 > 编程语言 > Go语言

基于SnapDragonBoard410c的远程防盗系统 (三)

2017-12-06 11:37 190 查看
本次我将继续为大家讲解基于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);
}
}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: