项目源码地址:https://github.com/popobo/WebRTC_Android
01 使用相机
基本概念
- RTC(Real Time Communication): 实时通信
- WebRTC: 基于web的实时通信
- Signaling: 信令, 一些描述媒体或网络的字符串
- SDP(Session Description Protocol): 会话描述协议, 主要描述媒体信息
- ICE(Interactive Connectivity Establishment): 交互式连接建立
- STUN(Session Traversal Utilities for NAT): NAT会话穿透工具
- TURN(Traversal Using Relays around NAT): 中继穿透NAT
使用方法
添加WebRTC库
在module的build.gradle(Module:cpp)中添加依赖,这个是官方打包的最新版本(202003)。当然你也可以 自己构建.
dependencies {
...
// 添加WebRTC库
implementation 'org.webrtc:google-webrtc:1.0.30039'
...
}
添加权限
在AndroidManifest.xml添加相机权限和录音权限, 注意Android6.0以上需要到设置里开启相机和麦克风权限
<!-- 相机权限和录音权限 -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
Android6.0以上申请权限
@Override
protected void onCreate(Bundle savedInstanceState) {
...
verifyStoragePermissions(this);
}
private static final int REQUEST_CAMERA_RECORD_AUDIO = 1;
private static String[] PERMISSIONS_CAMERA_RECORD_AUDIO = {
"android.permission.CAMERA",
"android.permission.RECORD_AUDIO" };
public static void verifyStoragePermissions(Activity activity) {
try {
int permission = ActivityCompat.checkSelfPermission(activity,
"android.permission.CAMERA");
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions