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

来源:互联网 发布:杭州程序员工资 编辑:程序博客网 时间:2024/05/17 07:49

本次我将继续为大家讲解基于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);            }        }    };