保存预览

package www.channelsoft.com.videoconference.sample.activity;

import android.content.Context;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import java.util.List;
import butel.net.conference.ConferenceSDK;
import butel.net.conference.ParticipantInfo;
import cn.redcdn.butelopensdk.constconfig.MediaType;
import www.channelsoft.com.videoconference.R;
import www.channelsoft.com.videoconference.factory.CallManagerInner;
import www.channelsoft.com.videoconference.listener.MeetCallBack;
import www.channelsoft.com.videoconference.listener.MeetListener;
import www.channelsoft.com.videoconference.sample.util.SPUtils;

public class MeetActivity extends AppCompatActivity {
    MeetListener meetListener;
    SurfaceView localSurfaceView, remoteSurfaceView, remoteSurfaceView2;
    Button mCameraBtn, hangupBtn;
    RelativeLayout allView;
    Context contextAct;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_meet);
        contextAct = this;
        initView();
    }

    private void initView() {
//        allView = (RelativeLayout) findViewById(R.id.rl_all_view);
        remoteSurfaceView = findViewById(R.id.remoteSv);
        remoteSurfaceView.setZOrderMediaOverlay(true);
         localSurfaceView = findViewById(R.id.localSv);
        localSurfaceView.setZOrderMediaOverlay(true);
        localSurfaceView.setZOrderOnTop(true);
         hangupBtn = (Button) findViewById(R.id.hangupBtn);
 


        hangupBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CallManagerInner.getInstance(contextAct).hangUp(new MeetCallBack.HangupListener() {
                    @Override
                    public void onSuccess() {
                        Log.e("MeetActivity", "---HangupListener--onSuccess----");

                        finish();
                    }

                    @Override
                    public void onFailed(int code, String msg) {

                    }
                });
            }
        });
        CallManagerInner.getInstance(contextAct).setOpenCamera(true);
        CallManagerInner.getInstance(contextAct).setAutoSpeak(true);
        CallManagerInner.getInstance(contextAct).setVideoMode(3);
        meetListener = new MeetListener() {
            @Override
            public void onStartSpeak(String accountId, String accountName) {
                Log.e("---onStartSpeak", accountId + "  " + accountName);
//                if (accountId.equals(SPUtils.getInstance().getString("user"))) {
//                    int result = CallManagerInner.getInstance(contextAct).startLocalVideo(MediaType.TYPE_VIDEO,
//                            localSurfaceView);
//                    Log.e("加入会议","加入会议local------"+result);
                //                } else {
//                    int resultRemote = CallManagerInner.getInstance(contextAct).startRemoteVideo(
//                            accountId,
//                            MediaType.TYPE_VIDEO, remoteSurfaceView);
//                    CallManagerInner.getInstance(contextAct).resumeSubscribe(accountId,MediaType.TYPE_VIDEO);
//                    Log.e("MeetActivity","加入会议resultRemote------"+resultRemote);
                //                }
            }

            //         画面渲染
            @Override
            public void onUserOpenCamera(String accountId) {
                super.onUserOpenCamera(accountId);
                Log.e("---onUserOpenCamera", accountId);
                if (accountId.equals(SPUtils.getInstance().getString("user"))) {
                    int result = CallManagerInner.getInstance(contextAct).startLocalVideo(MediaType.TYPE_VIDEO,
                            localSurfaceView);
                    Log.e("onUserOpenCamera", "---localSurfaceView加入------" + result);
                } else {
                    int resultRemote = CallManagerInner.getInstance(contextAct).startRemoteVideo(
                            accountId,
                            MediaType.TYPE_VIDEO, remoteSurfaceView);
                    CallManagerInner.getInstance(contextAct).resumeSubscribe(accountId, MediaType.TYPE_VIDEO);
                    Log.e("onUserOpenCamera", "---remoteSurfaceView加入 startRemoteVideo------" + resultRemote);
//                    localSurfaceView.setVisibility(View.INVISIBLE);
//                    hangupBtn.setVisibility(View.INVISIBLE);


                }
            }

            @Override
            public void onUserJoin(String accountId, String accountName) {
                super.onUserJoin(accountId, accountName);
                Log.e("---onUserJoin", accountId);
            }

            @Override
            public void onUserLeave(String accountId, String accountName) {
                super.onUserLeave(accountId, accountName);
                Log.e("---onUserLeave", accountId);
            }

            @Override
            public void onNetworkStateChange(int state) {
                super.onNetworkStateChange(state);
                Log.e("onNetworkStateChange", state + "");
            }

            /**
             * 会议被中断通知
             */
            @Override
            public void onMeetingBreak() {
                super.onMeetingBreak();
                Log.e("onMeetingBreak", "onMeetingBreak");
            }

            /**
             * 第一次加会获取到的参会方列表,只在第一次加会时回调,会议中的参会方列表由UI自己维护
             * 会议中的参会方UI可根据onUserJoin onUserLeave维护
             * @param participantInfoList  参会方列表
             */
            @Override
            public void onGetParticipantInfoList(List<ParticipantInfo> participantInfoList) {
                super.onGetParticipantInfoList(participantInfoList);
            }

            /**
             * 会议重连通知
             */
            @Override
            public void onMeetingRestore() {
                super.onMeetingRestore();
            }

            /**
             * 会议异常通知
             *
             * @param code 异常错误码
             * @param msg  异常信息描述
             */
            @Override
            public void onMeetingException(int code, String msg) {
                super.onMeetingException(code, msg);
                Log.e("onMeetingException", "onMeetingFinish" + msg);
            }

            /**
             * 解散会议通知
             */
            @Override
            public void onMeetingFinish() {
                super.onMeetingFinish();
                Log.e("onMeetingFinish", "onMeetingFinish");
            }
        };
//        SPUtils.getInstance().getInt("meetingNo")
        CallManagerInner.getInstance(contextAct).addConferenceListener(meetListener);
        CallManagerInner.getInstance(contextAct).joinMeeting
                (contextAct,    SPUtils.getInstance().getInt("meetingNo"), "slk", new ConferenceSDK.JoinMeetingListener() {
                    @Override
                    public void onSuccess() {
                        Log.e("---joinMeeting", "加入会议成功");
//                int result = CallManagerInner.getInstance(MeetActivity.this).startLocalVideo(MediaType.TYPE_VIDEO, localSurfaceView);
//                int resultRemote = CallManagerInner.getInstance(MeetActivity.this).startRemoteVideo(
//                        "90311369",
//                        MediaType.TYPE_VIDEO, remoteSurfaceView);
//                CallManagerInner.getInstance(getApplicationContext()).resumeSubscribe("90311369",MediaType. TYPE_VIDEO);
//                Log.e("加入会议","加入会议Remote"+resultRemote);
//                Log.e("加入会议","加入会议"+result);
                        for (int i = 0; i < CallManagerInner.getInstance(contextAct).getSpeakers().size(); i++) {
                            if (CallManagerInner.getInstance(contextAct).getSpeakers().get(i).getAccountId()
                                    .equals(SPUtils.getInstance().getString("user"))) {
                                int result = CallManagerInner.getInstance(contextAct).startLocalVideo(MediaType.TYPE_VIDEO, localSurfaceView);
                                Log.e("joinMeeting", "---加入会议onSuccess startLocalVideo" + result);

                            } else {
                                int resultRemote = CallManagerInner.getInstance(contextAct).startRemoteVideo(
                                        CallManagerInner.getInstance(contextAct).getSpeakers().get(i).getAccountId(),
                                        MediaType.TYPE_VIDEO, remoteSurfaceView);
                                CallManagerInner.getInstance(contextAct).resumeSubscribe(CallManagerInner.getInstance(contextAct).getSpeakers().get(i).getAccountId(), MediaType.TYPE_VIDEO);
                                Log.e("joinMeeting", "---加入会议onSuccess startRemoteVideo" + resultRemote);
                            }

                        }

                    }

                    @Override
                    public void onFailed(int i, String s) {
                        Log.e("加入会议", "加入会议失败" + s);
                    }
                });


    }

    @Override
    protected void onResume() {
        super.onResume();
//        CallManagerInner.getInstance(getApplicationContext()).resumeSubscribe("90311369",MediaType. TYPE_VIDEO);
    }

    @Override
    protected void onPause() {
        super.onPause();
//        CallManagerInner.getInstance(getApplicationContext()).pauseSubscribe("90311369",MediaType. TYPE_VIDEO);
    }

    @Override
    protected void onDestroy() {
        CallManagerInner.getInstance(getApplicationContext()).removeMeetListener(meetListener);
        super.onDestroy();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值