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

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

    };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值