Android 基於agora 開發視頻會議的代碼
一、概述
參照官方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; } }
到此這篇關於Android 基於agora 開發視頻會議的文章就介紹到這瞭,更多相關Android開發視頻會議內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Android Studio實現QQ的註冊登錄和好友列表跳轉
- Android開發文件存儲實例
- Android中EditText光標的顯示與隱藏方法
- Android生成隨機數的方法實例
- Android studio實現簡易的計算器功能