一、概述

参照官方demo,基于agora开发,输入会议号(频道)和显示名称 参会,可设置参会选项。

支持用户注册和登录。

支持多人参会。

二、效果

 

 

 

 

 

 

 

三、代码

package io.agora.openvcall.ui;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.ActionBar;import android.text.Editable;import android.text.TextUtils;import android.text.TextWatcher;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.EditText;import android.widget.Spinner;import android.widget.Switch;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import io.agora.openvcall.R;import io.agora.openvcall.model.ConstantApp;import io.agora.openvcall.ui.mycode.common;public class MainActivity extends BaseActivity {    private final static Logger log = LoggerFactory.getLogger(MainActivity.class);    private String username;    private String password;    private String name;    private int user_id;    private String show_name;    private boolean videomute;    private boolean audiomute;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ActionBar ab = getSupportActionBar();        if (ab != null) {            ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);            ab.setCustomView(R.layout.ard_agora_actionbar);        }        initP();    }    private  void initP(){        String show_name = common.getName();        if(!TextUtils.isEmpty(show_name)){            this.name=show_name;            this.show_name=show_name;            common.setName(show_name);            EditText et = findViewById(R.id.user_name);            et.setText(show_name);        }        String _username = common.getUsername();        if(!TextUtils.isEmpty(_username)){            username=_username;        }        String _password = common.getPassword();        if(!TextUtils.isEmpty(_password)){            password=_password;        }        user_id = common.getUser_id();    }    public void onBackPressed(View view) {        onBackPressed();    }    @Override    protected void initUIandEvent() {        EditText v_channel = (EditText) findViewById(R.id.channel_name);        v_channel.addTextChangedListener(new TextWatcher() {            @Override            public void beforeTextChanged(CharSequence s, int start, int count, int after) {            }            @Override            public void onTextChanged(CharSequence s, int start, int before, int count) {            }            @Override            public void afterTextChanged(Editable s) {            }        });        String lastChannelName = vSettings().mChannelName;        if (!TextUtils.isEmpty(lastChannelName)) {            v_channel.setText(lastChannelName);            v_channel.setSelection(lastChannelName.length());        }    }    @Override    protected void deInitUIandEvent() {    }    @Override    public boolean onCreateOptionsMenu(final Menu menu) {        MenuInflater inflater = getMenuInflater();        inflater.inflate(R.menu.menu_main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle presses on the action bar items        switch (item.getItemId()) {            case R.id.action_settings:                forwardToSettings();                return true;            default:                return super.onOptionsItemSelected(item);        }    }    public void onClickJoin(View view) {        forwardToRoom();    }    public void forwardToRoom() {        EditText v_channel = (EditText) findViewById(R.id.channel_name);        String channel = v_channel.getText().toString();        if(TextUtils.isEmpty(channel)){            showLongToast("请输入会议号!");            return;        }        vSettings().mChannelName = channel;        Intent i = new Intent(MainActivity.this, CallActivity.class);        i.putExtra(ConstantApp.ACTION_KEY_CHANNEL_NAME, channel);        //i.putExtra(ConstantApp.ACTION_KEY_ENCRYPTION_KEY, encryption);        i.putExtra(ConstantApp.ACTION_KEY_ENCRYPTION_MODE, getResources().getStringArray(R.array.encryption_mode_values)[vSettings().mEncryptionModeIndex]);        i.putExtra("username",username);        i.putExtra("password",password);        i.putExtra("name",name);        i.putExtra("user_id",user_id);        i.putExtra("videomute",videomute);        i.putExtra("audiomute",audiomute);        EditText show_name_E = (EditText) findViewById(R.id.user_name);        String _show_name = show_name_E.getText().toString();        i.putExtra("show_name",_show_name);        startActivity(i);        finish();    }    public void forwardToSettings() {        Intent i = new Intent(this, io.agora.openvcall.ui.SettingsActivity.class);        startActivity(i);    }    @Override    public void permissionGranted() {    }    public void onSwitch_audio(View view) {        boolean isChecked = ((Switch) view).isChecked();        this.audiomute=!isChecked;    }    public void onSwitch_video(View view) {        boolean isChecked = ((Switch) view).isChecked();        this.videomute=!isChecked;    }}

 

更多相关文章

  1. 收藏的Android非常好用的组件或者框架。
  2. android 模拟器键盘控制键 以及 设置模拟器屏幕大小
  3. Android(安卓)中支持的几种传感器(加速度、陀螺仪、亮度、地磁、
  4. android版本更新说明
  5. 利用 nodejs 自动生成 Android(安卓)语言包实现应用内切换多语言
  6. android 开发 GitHub Android(安卓)Librarys Top 100 简介
  7. react-native-s-alipay -- React Native 支付宝模块,同时支持ios
  8. Android(安卓)WebView 支持H5图片上传
  9. Android(安卓)支持多屏幕机制

随机推荐

  1. android一些技巧
  2. Android(安卓)SQLiteHelper
  3. Android(安卓)CTS 总结
  4. android uninstall小工具demo实现
  5. Android(安卓)input method panel contro
  6. android studio Error:Unable to start t
  7. android SQLiteDatabase源码解析
  8. Android(安卓)图标放大闪烁动画
  9. Delphi XE5 android 获取网络状态《转》
  10. android 打开通知栏