社区首页 >问答首页 >如何使用Android Java Camera View模块创建自定义React Native组件?

如何使用Android Java Camera View模块创建自定义React Native组件?
EN

Stack Overflow用户
提问于 2020-05-01 02:27:23
回答 1查看 816关注 0票数 1

我试图建立一个反应原生的android应用程序的增强现实的目的,我需要一个实时相机预览显示在屏幕上。因此,我正在尝试制作自己的Android摄像头组件,而不是使用React native的默认react-native-camera包。这是因为我需要一个相机模块,它可以让我实时获取相机帧,检测Aruco标记,在图像帧上绘制,并在react-native的相机预览中显示它。因此,通过阅读教程和文章,我尝试创建一个视图管理器类和一个ReactPackage类来桥接我的Android相机视图。仅供参考,CameraBridgeViewBase类是一个扩展SurfaceView的OpenCV类,可在以下库中找到:https://github.com/quickbirdstudios/opencv-android/tree/master/opencv3_4_4_contrib

当我运行这个应用程序时,我总是看到没有摄像头预览的黑屏。在创建视图之前,我确实获得了相机权限。如果有任何建议或任何在这一领域有经验的人可能会有所帮助。非常感谢,谢谢。

视图管理器类:

代码语言:javascript
代码运行次数:0
复制
public class JavaCameraViewManager extends SimpleViewManager<CameraBridgeViewBase> implements CameraBridgeViewBase.CvCameraViewListener2 {

    public static final String REACT_CLASS = "JavaCameraView";
    public CameraBridgeViewBase javaCameraView;

    @Override
    public String getName() {
        return REACT_CLASS;
    }

    @Override
    protected CameraBridgeViewBase createViewInstance(ThemedReactContext reactContext) {
        javaCameraView = new JavaCameraView(reactContext, null);
        javaCameraView.setVisibility(SurfaceView.VISIBLE);
        javaCameraView.setCvCameraViewListener(this);
        return javaCameraView;
    }

    @Override
    public void onCameraViewStarted(int width, int height){}

    @Override
    public void onCameraViewStopped(){}

    @Override
    public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame){
        System.out.println("onCameraFrame$");
        return inputFrame.rgba();
    }

}

React包类:

代码语言:javascript
代码运行次数:0
复制
public class JavaCameraViewPackage implements ReactPackage {

    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }
    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.<ViewManager>singletonList(
                new JavaCameraViewManager()
        );
    }
}

React本机摄像机视图组件类:

代码语言:javascript
代码运行次数:0
复制
import React, { Component } from 'react'
import { requireNativeComponent} from 'react-native';

const JavaCameraView = requireNativeComponent('JavaCameraView', JavaCameraViewView);

export default class JavaCameraViewView extends Component {
    render () {
      return <JavaCameraView {...this.props} />
    }
  }

App.js:

代码语言:javascript
代码运行次数:0
复制
'use strict';
import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import { NativeModules, AppRegistry, TouchableOpacity} from 'react-native';
import JavaCameraView from './src/JavaCameraViewNativeView'

export default class App extends Component  {

  render() {
    return (
      <View style={styles.container}>
        <JavaCameraView style={{ flex: 1, width: '100%', height: '100%', backgroundColor:'blue'}} /> 
      </View>
    );
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-09-30 14:33:14

我找到了一个opencv项目,它有一个如何设置android openCV java相机预览的解决方案,以桥接到react native。查看https://github.com/RobertSasak/react-native-openalpr

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61535910

复制
相关文章
React Native组件(二)View组件解析
前言 了解了RN的组件的生命周期后,我们接着来学习RN的具体的组件。View组件是最基本的组件,也是首先要掌握的组件,这一篇我们来学习View组件。 1.概述 View组件是RN中最基本的组件,绝大部分的组件都继承了View组件的属性,所以学习其他组件前,要首先掌握View组件。 View组件是一个支持Flexbox布局、样式、一些触摸处理的容器,它可以放到其它的组件里,也可以有任意多个任意类型的子组件。View组件对应着多个平台的视图,比如Android的View以及iOS的UIView。 由于View
用户1269200
2018/02/01
2.5K0
React Native组件(二)View组件解析
React Native使用原生组件
概述 有时候App需要访问平台API,但React Native可能还没有相应的模块包装;或者你需要复用一些Java代码,而不是用Javascript重新实现一遍;又或者你需要实现某些高性能的、多线程的代码,譬如图片处理、数据库、或者各种高级扩展等等。 我们知道React Native本身对这种偏业务和底层调用是不关心的,这时候我们就想到了原生组件,我们通过调用原生组件,然后经过特定的封装来达到效果。如我们在原生开发中常见的Toast为例: 原生模块封装 假设我们希望可以从Javascript发起一个T
xiangzhihong
2018/02/05
2.2K0
【React Native】react-native-scrollable-tab-view
一张跟内容完全关系的图 介绍 一个带有TabBar和可切换页面的控件。 在Android中可以看成是ViewPager和TabLayout的结合。 实际效果的话,就下面这样了。 官方的动图 你可以选择直接上官方Github了解怎么使用,或者继续往下看我装逼。 添加到项目中 npm install react-native-scrollable-tab-view --save 使用 基本用法 用tabLabel指定Tab名称 render() { return ( <S
Gavin-ZYX
2018/05/18
2.7K0
react-native自定义原生组件
使用react-native的时候能够看到不少函数调用式的组件,像LinkIOS用来呼起url请求
conanma
2021/11/02
1.2K0
NativeScript和React Native对比
| 导语 “一次编码,处处运行”一直是程序员的理想,最近研究了一下NativeScript的原理,对比了一下NS和RN的区别。 一、NativeScript原理        NativeScript是一个基于Apache 2.0许可的Github开源项目。既不是一种新型的JavaScript语言,也不是原生功能的封装器。NativeScript 的思路就是使用移动平台的 JavaScript 引擎来进行跨平台开发。逻辑部分自然无需多说,关键在于如何使用平台特性,JavaScript 要怎样才能调用 na
腾讯NEXT学位
2018/08/08
4.1K0
React Native之react-native-scrollable-tab-view详解
在React Native开发中,官方为我们提供的Tab控制器有两种:TabBarIOS和ViewPagerAndroid。TabBarIOS,仅适用于IOS平台 ViewPagerAndroid,仅适用于Android平台(严格来讲并不算,因为我们还需要自己实现Tab)。在项目开发中,我们优先选择一些开源兼容性比较好的第三方库,例如,react-navigation,以及本文即将说到的react-native-scrollable-tab-view(官方地址)。react-native-scrolla
xiangzhihong
2018/02/06
6.5K0
React Native之react-native-scrollable-tab-view详解
使用Enzyme测试React(Native)组件|洞见
组件化与UI测试 在组件化出现之前,我们不谈UI的单元测试,哪怕是对于UI页面进行测试都是一件非常困难的事情。其实组件化并不完全是为了复用,很多情况下也恰恰是为了分治,使得我们可以分组件对UI页面进行
ThoughtWorks
2018/04/17
2.4K0
使用Enzyme测试React(Native)组件|洞见
【Hybrid开发高级系列】ReactNative(三)——RN能力简介
http://facebook.github.io/react-native/docs/getting-started.html
江中散人_Jun
2023/10/16
3280
【Hybrid开发高级系列】ReactNative(三)——RN能力简介
React Native 表格组件
npm install--save react-native-data-table
forrest23
2018/08/03
1.8K0
React Native 表格组件
【React-Native】React-Native组件样式合集
最近在阅读RN的文档,但有一点深感遗憾的是——官方对绝大多数RN组件没有用Gif图或者静态图的方式呈现给大家。
啦啦啦321
2022/03/30
2.3K0
【React-Native】React-Native组件样式合集
React Native运行原理解析
Facebook 于2015年9月15日推出react native for Android 版本, 加上2014年底已经开源的IOS版本,至此RN (react-native)真正成为跨平台的客户端框架。本篇主要是从分析代码入手,探讨一下RN在安卓平台上是如何构建一套JS的运行框架。 一、 整体架构 RN 这套框架让 JS开发者可以大部分使用JS代码就可以构建一个跨平台APP。 Facebook官方说法是learn once, run everywhere, 即在Android 、 IOS、 Browse
xiangzhihong
2018/02/05
6.2K0
React Native运行原理解析
从0到1打造一款react-native App(三)Camera
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/j_bleach/article/details/80723293
j_bleach
2019/07/02
1.7K0
从0到1打造一款react-native App(三)Camera
React Native调用Android相机图库
概述 在很多的React Native开发中,我们需要调用原生的api实现调用相机和图库的功能,网上用的最多的开源库如:react-native-image-picker。关于react-native-image-picker的用法大家请看相关的文档。我们今天手动实现一份。 调用Android图库相机 创建项目 执行命令 : react-native init HeadImage 创建一个名为HeadImage的工程,可以使用命令先运行下Demo项目。 然后照一张图片,放到放到工程的 HeadImag
xiangzhihong
2018/02/06
2.1K0
React Native调用Android相机图库
概述 在很多的React Native开发中,我们需要调用原生的api实现调用相机和图库的功能,网上用的最多的开源库如:react-native-image-picker。关于react-native-image-picker的用法大家请看相关的文档。我们今天手动实现一份。 调用Android图库相机 创建项目 执行命令 : react-native init HeadImage 创建一个名为HeadImage的工程,可以使用命令先运行下Demo项目。 然后照一张图片,放到放到工程的 HeadImage\A
xiangzhihong
2018/01/26
1.7K0
react-native 跨平台滤镜集成
Demo 下载地址:https://github.com/XHTeng/react_native_filter_demo 刚接触RN不久,代码写的很烂,如果您有更好的优化(代码和性能都可),感谢您P
用户2141756
2018/05/18
1.8K0
React Native实现一个自定义模块
概述 在 前期介绍React Native 项目结构的时候,我们讲解过React的项目组成,其中说过 node_modules 文件夹,这是一个存放 node 模块的地方。我们知道React是用npm来管理项目的。提到npm,一般指两层含义:一是 Node.js 开放式模块登记和管理系统,另一种是 Node.js 默认的模块管理器,是一个命令行软件,用来安装和管理 node 模块。 npm 使用介绍 npm 是一个 Node.js 模块,安装 Node.js 会默认安装 npm,可以在终端中使用以下命令来查
xiangzhihong
2018/02/05
1.6K0
React Native实现一个自定义模块
React Native Android原生模块开发实战|教程|心得
尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://www.devio.org) 告诉大家一个好消息,为大家精心准备的React Native视频教程发布了,大家现可以看视频学React Native了。 前言 一直想写一下我在React Native原生模块封装方面的一些经验和心得,来分享给大家,但实在抽不开身,今天看了一下日历发现马上就春节了,所以就赶在春节之前将这篇博文写好并发布(其实是两篇:要看iOS篇的点这里《React Native iOS原生模块开发》)。 我平
CrazyCodeBoy
2018/05/07
2.1K0
React Native Android原生模块开发实战|教程|心得
React Native 使用Realm数据库组件
使用Realm Studio来调试查看编辑数据库里的数据,支持Mac、Windows、Linux。
forrest23
2018/08/03
1.4K0
React Native 使用Realm数据库组件
ReactJS到React-Native,架构原理概述
React是一个纯JS的UI库,只能干HTML/CSS/JS 提供的Web服务(新的H5 API不一定支持), React-Native厉害在于它能打通JS和Native Code, 让JS能够调用丰富的原生接口,充分发挥硬件的能力, 实现非常复杂的效果,同时能保证效率和跨平台性。
周陆军博客
2023/04/09
5.4K0
点击加载更多

相似问题

如何使用react-native-camera模块进行视频采集?

117

无法解析模块react- Native -pager-view React Native

3102

如何创建固定覆盖<View> React Native

22

如何使用react-native-camera录制视频

34

使用带react-native导航的react-native-camera

118
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档