我们经常会碰到这样的状况:当我们刚为吹风机或加热器插上电时,房间里的灯忽然全灭了,电视机也停止了工作。

这时你不得不绝望地打电话向客服求助,向他们描述刚刚发生的事情,而他们告诉你只需要打开空气开关就好了。可当你打开配电板后,却不知道哪个是空气开关。经过20分钟不断与客服确定断路器的位置后,你终于发现家中压根就没有什么所谓的空气开关。

如今大多数的远程协助都是通过语音电话或是短信进行的,这对于很多试图向客服阐述清楚问题并想弄清与其相关的新概念和专业术语的用户来说无疑是十分麻烦的。

幸运的是,现在出现了解决此类问题的视频聊天和AR技术。在本指南中,我会告诉你如何构建一个利用ARCore和视频聊天的Adroid app来创造互动体验。

要求

1.对Java和Android SDK要有基础到中级的了解。

2.能基本理解ARCore和增强现实技术的概念。

3.Agora.io开发者账号

4.硬件:两台API运行级别在24或更高版本的Android设备并装有谷歌商店。

这里了解对设备的详细要求

注意:尽管不需要Java/Android的相关知识也能跟上,但在此过程中不会对 Java/ARCore 的某些概念进行额外解释。

总览

在本指南中,我们将构建一个支持AR功能的客户支持应用程序。 其中一个用户可以通过输入频道名称来创建频道,并以主播(需要支持的人)的身份加入该频道。 而另一个用户可以通过输入相同的频道名称,以观众(客户支持)的身份来加入同一频道。 当两个用户都在频道中时,主播可以向观众推送他们后置摄像头所拍摄的画面。 观众可以在自己的设备上绘图,而这些触摸输入会在主播端通过增强现实技术渲染出来!
在本章中我们会主要讲以下几步骤

1.创建新项目

2.创建UI

3.开启AR Core

4.开启主播语音视频

5.开启观众语音视频

6.远程协助功能

7.建立并检测设备

您可以通过我的Github找到相关 demo app 作为本文的参考。

创建新项目

首先,我们需开启Andnroid studio新建一个空白项目。

1.打开Android Studio并点击 开启一个新的Android Studio项目 。

2.在“ 选择项目 ”面板上,选择“ 手机和平板电脑 ”>“ 创建空的Activity ”,然后单击“ 下一步 ”。

3.单击 “完成”. 如果您需要安装任何插件,请按照屏幕上的说明进行操作。

集成SDK

在您所创建项目的 /app/build.gradle 文件中添加以下行:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    
    //ARCore 
    implementation 'com.google.ar:core:1.0.0'
    implementation 'de.javagl:obj:0.2.1'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'

    //Video 
    implementation 'io.agora.rtc:full-sdk:3.1.3'
}

更改后同步项目。 在**/app/src/main/AndroidManifest.xml**文件中添加以下项目权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />

为了运行ARCore,我们还需要在AndroidManifest.xml文件中添加以下内容。 这表明该应用程序需要ARCore。

<uses-feature
    android:name="android.hardware.camera.ar"
    android:required="true" />
<application
...
<meta-data
    android:name="com.google.ar.core"
    android:value="required" />
</application>

创建UI

让我们为两个用户创建UI组件。 对于用AR技术远程共享世界的用户,我们将其称为“主播”。对于其他加入频道提供支持的用户,我们将其称为“观众”。 以下是我将使用的UI示例: