WebRTC 系列1--创建相机预览

本文介绍了如何使用 WebRTC 在 Android 上创建相机预览,包括依赖版本选择、相机权限申请、相机实例创建、预览接收和开启预览的步骤。核心代码简洁,不到 50 行即可实现。
摘要由CSDN通过智能技术生成

用 WebRTC 创建相机预览,不到 50 行核心代码就可以轻松搞定了。

1、WebRTC 依赖版本

直接使用官方给的版本就好了,不需要再去额外编译。

implementation 'org.webrtc:google-webrtc:1.0.30039'

后面都会使用该版本做测试的。

2、相机权限申请

WebRTC 虽说功能强大,代码简洁,但是并没有封装一个应用权限申请的接口,这需要自己去操作了。

3、相机预览

有个段子是把大象放进冰箱有多少步骤,共三步,打开冰箱,塞进大象,关上冰箱。

用 WebRTC 创建相机预览和上面的段子步骤一样,打开相机设置接收开启预览

至于中间的繁琐步骤,比如相机创建的内部实现,预览绘制的内部实现都不用去关心了,调用好接口,设置好参数就行。

3.1 创建相机实例

在 WebRTC 中相机实例统一实现了 VideoCapturer 接口,不管是 Camera1 还是 Camera2 。

public interface VideoCapturer {
    void initialize(SurfaceTextureHelper var1, Context var2, CapturerObserver var3);
​
    void startCapture(int var1, int var2, int var3);
​
    void stopCapture() throws InterruptedException;
​
    void changeCaptureFormat(int var1, int var2, int var3);
​
    void dispose();
​
    boolean isScreencast();
}

该接口也比较简单,只需要相机实例对外提供一些简单的预览能力就好。

创建相机实例的代码如下:

private fun createVideoCapture(): VideoCapturer? {
    val enumerator = Camera1Enumerator(false)
    val deviceNames = enumerator.deviceNames
​
    for (deviceName in deviceNames) {
        if (enumerator.isFrontFacing(deviceName)) {
            val videoCapture = enumerator.createCapturer(deviceName, null)
            if (videoCapture != null) {
                return videoCapture
            }
        }
    }
    return null
}

Camera1Enumerator 是用来枚举设备上有多少摄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值