其他分享
首页 > 其他分享> > Agora-SDK-在Android中的使用(在线视频通话),Android推送技术解析

Agora-SDK-在Android中的使用(在线视频通话),Android推送技术解析

作者:互联网

|—src
|—main
|—AndroidManifest.xml
|—java
|—io
|—agora
|—tutorials1v1vcall
|—VideoChatViewActivity.java
|—jniLibs
|—arm64-v8a
|—PLACEHOLDER
|—armeabi-v7a
|—PLACEHOLDER
|—x86
|—PLACEHOLDER
|—res
|—drawable-xxxhdpi
|—btn_end_call.png
|—btn_mute.png
|—btn_switch_camera.png
|—btn_video.png
|—btn_voice.png
|—ic_launcher.png
|—layout
|—activity_video_chat_view.xml
|—values
|—colors.xml
|—dimens.xml
|—strings.xml
|—styles.xml
|—build.gradle
|—gradle
|—wrapper
|—gradle-wrapper.jar
|—gradle-wrapper.properties
|—gradle.properties
|—gradlew
|—gradlew.bat
|—images
|—ActivityViewChat.png
|—LICENSE.md
|—README.md
|—README.zh.md
|—settings.gradle


2.查看最项目的settings.gradlebuild.gradle(最外层)

如果你想导入AS中查看,可以看一下com.android.tools.build:gradle的版本修改一下

---->[settings.gradle]----------------看一下项目包含的模块------------
include ‘:app’

---->[build.gradle]----------------看一下项目的一些信息------------
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath ‘com.android.tools.build:gradle:3.1.4’
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}


3.查看模块下的build.gradle

---->[app/build.gradle]----------------看一下项目的具体信息------------
apply plugin: ‘com.android.application’
android {
compileSdkVersion 26
defaultConfig {
applicationId “io.agora.tutorials1v1vcall”
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName “1.0”
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
sourceSets {//这里是jniLibs的目录
main {
jniLibs.srcDirs = [’…/…/…/libs’]
}
}
}

dependencies {//这里是依赖
implementation fileTree(dir: ‘…/…/…/libs’, include: [’*.jar’]) // DO NOT CHANGE, CI may needs it when packaging
implementation ‘com.android.support:appcompat-v7:26.1.0’
}


4.查看AndroidManifest.xml,得到入口Activity

可见示例的入口是VideoChatViewActivity,并看一下权限






|— 权限 ------------


三、创建IChat项目


1、配置项目

项目的配置如图,将依赖包以及.so文件放在对应位置

为了方便些,将res文件夹的资源拷贝一下


2、配置APP ID


3.视频通话Activity的分析

一共也就200多行,还包括一大坨权限申请的代码,这里权限申请的代码单独拎出来,就当复习一下。

3.1:权限申请(非要点,可忽略)

---->[成员变量]----------------------------------
private static final int PERMISSION_REQ_ID = 22;
//WRITE_EXTERNAL_STORAGE 权限只是为了保存日志到SD卡
private static final String[] REQUESTED_PERMISSIONS = {
Manifest.permission.RECORD_AUDIO,//录音权限
Manifest.permission.CAMERA,//相机权限
Manifest.permission.WRITE_EXTERNAL_STORAGE//SD卡写权限
};

if (checkSelfPermission(REQUESTED_PERMISSIONS[0], PERMISSION_REQ_ID) &&
checkSelfPermission(REQUESTED_PERMISSIONS[1], PERMISSION_REQ_ID) &&
checkSelfPermission(REQUESTED_PERMISSIONS[2], PERMISSION_REQ_ID)) {
//执行到此处说明已有权限成功
initAgoraEngineAndJoinChannel();
}

/**

@Override
public void onRequestPermissionsResult(
int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
Log.i(LOG_TAG, "onRequestPermissionsResult " + grantResults[0] + " " + requestCode);
switch (requestCode) {
case PERMISSION_REQ_ID: {//请求码
if (grantResults[0] != PackageManager.PERMISSION_GRANTED ||
grantResults[1] != PackageManager.PERMISSION_GRANTED ||
grantResults[2] != PackageManager.PERMISSION_GRANTED) {
//三个权限有任意的未被允许,弹吐司,退出
showLongToast("Need permissions " +
Manifest.permission.RECORD_AUDIO + “/” +
Manifest.permission.CAMERA + “/” +
Manifest.permission.WRITE_EXTERNAL_STORAGE);
finish();
break;
}
//执行到此处说明用户已允许权限
initAgoraEngineAndJoinChannel();
break;
}
}
}


4.初始化Agora引擎和连接频道

/**

/**

/**

/**

最后

总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。

在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。需要的朋友可以私信我【资料】或者 点这里 免费领取

还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。 领取地址: Android学习PDF+架构视频+最新面试文档+源码笔记

脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。 领取地址: Android学习PDF+架构视频+最新面试文档+源码笔记

标签:permission,PERMISSION,在线视频,gradle,requestCode,Agora,Android,权限,VideoEncoderConfi
来源: https://blog.csdn.net/m0_66145114/article/details/122788158