SurfaceView预览camera

Android Camera开发实践(1)预览 *其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。这么重要的事情说三遍啦! 阅读详情

SurfaceView 预览Camera
实现步骤

1.增加权限
<uses-permission android:name="android.permission.CAMERA"/>
2.动态申请权限
//检查访问摄像头权限
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 100);
} else {
    //拥有权限
    initCameraView();
}
3.为SurfaceView的SurfaceHolder增加回调

类中要实现回调 implements SurfaceHolder.Callback

private void initCameraView() {
    surfaceView = findViewById(R.id.surfaceview);
    surfaceHolder = surfaceView.getHolder();
    surfaceHolder.addCallback(this);
}
4.Camera相机初始化并关联SurfaceHolder

记得加上这句camera.startPreview()

  @Override
    public void surfaceCreated(final SurfaceHolder holder) {

        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    if (camera == null)
                        camera = Camera.open(1);
                    camera.setPreviewDisplay(holder);
                    camera.setPreviewCallback(new Camera.PreviewCallback() {
                        @Override
                        public void onPreviewFrame(byte[] data, Camera camera) {
                        }
                    });
                    camera.setDisplayOrientation(90);
                    camera.startPreview();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();

    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {

    }
SurfaceView预览Camera+GLSurfaceView绘制 之前用opencv做车道识别是在Camera的帧上做处理,直接影响到了预览的帧速,我想这样对于客户来说是非常不爽的,所以受FastCV Sample例子的启发,想到了用双SurfaceView来解决这个问题。当然,这里我是用SurfaceView来预览Camera,GLSurfaceView来绘制(GLSurfaceView本质上是SurfaceView)。         言归正传,接下来,让 阅读详情

相关推荐

Camera SurfaceView 预览拉伸

一,布局问题 父布局最好用 RelativeLayout surfaceViewwidth hight设置成wrap_content 二代码控制 /* * 适配手机分辨率,防止拉伸 * 获取系统支持的所有预览尺寸[getSupportedPictureSizes],然后再取一个比较接近的尺寸进行设置[setPreviewSize] * * @return Point * */ private static Point getCame...

gxflh的博客 929

玩转Android Camera开发(一):Surfaceview预览Camera,基础拍照功能完整demo

杂家前文是在2012年的除夕之夜仓促完成,后来很多人指出了一些问题,琐事缠身一直没有进行升级。后来随着我自己的使用,越来越发现不出个升级版的demo是不行了。有时候就连我自己用这个demo测一些性能、功能点,用着都不顺手。当初代码是在linux下写的,弄到windows里下全是乱码。还要自己改几分钟才能改好。另外,很多人说不能正常预览,原因是我在布局里把Surfaceview的尺寸写死了。再有就是

yanzi1225627的专栏 14万+

android通过camera和surfaceview选择摄像头并即时预览

在使用android设备的摄像头的时候我们有两种选择: 1.调用intent方法使用摄像头 2.通过camera类使用摄像头 第一种方法非常方便,不过需要跳到新的activity中,这样的用户体验并不是特别好 使用camera能有更大的自定义空间! 使用camera就需要用surfaceview显示摄像头的即时画面 我们这样设置layout: <L

EdwardWayne的专栏 5126

Android 使用SurfaceView加载相机预览界面

使用SurfaceView加载相机预览界面 1,添加相机权限 <uses-permission android:name="android.permission.CAMERA" /> 2,页面布局,因为我项目需要的是一个扫描页面,所以我在底布局下填充了一个SurfaceView <SurfaceView android:id="@+id/mSurfaceView" android:layout_width="match_parent"

Smile乾的博客 2347

Android音视频技术3--Camera 进行视频的采集并通过 SurfaceView预览 Camera 数据

一.Camera 采集数据 打开摄像头 camera = Camera.open(); Camera关联SurfaceView预览摄像头数据 mSurfaceHolder = mSurfaceView.getHolder(); camera.setPreviewDisplay(mSurfaceHolder); 这里除了使用SurfaceView预览Camera数据外,还可以使用set...

zhouhnwen的专栏 511

Lenovo 拯救者15ISK硬件升级实战:从内存到固态硬盘的全面优化

本文详细介绍了为联想拯救者15ISK笔记本电脑进行硬件升级的完整实战指南。通过评估升级可行性,指导如何挑选兼容的内存条与NVMe固态硬盘,并提供详细的拆机安装步骤与系统安装避坑技巧。升级后,笔记本的开机速度、软件加载及多任务处理能力获得飞跃式提升,让老旧设备重获新生。

weixin_29310631的博客 557

Android开发之SurfaceView

Android开发之SurfaceView /* * Android开发之SurfaceView * 北京Android俱乐部群:167839253 * Created on: 2011-8-26 * Author: blueeagle * Email: liujiaxiang@gmail.com */ 在前面学习视频播放和简单照相机的制作的时候,用到了SurfaceView...

wangxiaohigh 467

EXI编解码避坑指南:ISO15118-2协议中3条异常命令的差异分析

本文深度剖析了ISO15118-2协议测试中EXI编解码的典型问题,聚焦于ChargeParameterDiscoveryRes、CertificateInstallationReq和MeteringReceiptReq三条命令在不同工具间产生109字节差异的现象。通过对比EXICodec.jar、OpenEXI和Efficient XML的输出,揭示了差异根源于EXI报头处理机制与模式文件完整性,并提供了从现象确认、根因分析到解决方案的标准化排查流程,助力协议测试工程师确保编解码一致性与通信可靠性。

algae的博客 411

Android Camera 预览镜像(使用 surfaceView 实现)

该方法是从opencv的java接口中学得 不知道为什么,最后显示出来的效果基本不能用(卡顿) 效果如下: 主要思想: 将Camera.PreviewCallback获得的 实时数据byte[] 数组,显示到Surfaceview上(双缓冲,子线程画图),这样就可以在即将预览的数据做镜像处理; 问题描述: 一般情况下 我们会直接使用 camera.setPreviewDisp...

mbrose的博客 1万+

深入解析iDP3的Learning模块:从数据集构建到3D动作预测的代码实现

本文深入解析iDP3框架的Learning模块,从数据集构建到3D动作预测的完整代码实现。通过扩散模型实现视觉输入到动作序列的端到端预测,详细介绍数据采集、增强策略、模型架构及训练技巧,帮助开发者掌握3D动作预测策略的核心技术。

k0l1m2n3o的博客 310

TVS 和压敏电阻联合使用进行浪涌保护时,压敏电阻的压敏电压要低于TVS 的钳位电压 VC。

通过先让MOV接管,可以确保在大多数情况下,电压不会迅速上升到TVS二极管的钳位电压,从而保护TVS二极管免受持续高能量冲击的损害。总结来说,将MOV的压敏电压设置得低于TVS二极管的钳位电压,可以提供一种分级的保护机制,优化浪涌保护性能,同时保护敏感的TVS二极管不被过度的能量冲击损坏,并延长其使用寿命。MOV吸收的能量(Wmov):假设浪涌电流为10kA,MOV导通后将电压限制在300V,那么Wmov = Ipp * Vmov = 10kA * 300V = 3MW。例如,Vmov可以设定为275V。

weixin_66642980的博客 2247

解决SurfaceView预览Camera拉伸问题

在android中实现录制视频时,都会要求实现一个视频预览的功能(一般都是全屏预览),实现方式就是用SurfaceView来实时显示Camera传递过来的图像。 但是我们都知道,android手机的屏幕尺寸千奇百怪,使用默认的预览尺寸,部分手机会导致SurfaceView显示时图像拉长,整个人的脸看起来比驴脸还长;如果设置Camera的预览尺寸为屏幕尺寸,那么如果刚好Camera不兼容这个尺寸,

乌龟赛跑 1万+

避坑指南:SAP成本中心分割结构配置常见错误及解决(含KA06/KL01前置步骤)

本文深入解析了SAP成本中心会计中分割结构配置的关键步骤与常见错误。重点强调了配置前必须通过KA06创建次级成本要素(类别42)和通过KL01创建活动类型这两个核心前置步骤,并详细剖析了在OKES中定义分割规则及版本时的高频报错原因与解决方案,帮助顾问和运维人员有效规避配置陷阱,确保成本分摊的准确性。

pear55的博客 865

Android Camera SurfaceView 预览拍照

本文已获得作者授权,本文作者:cain_huang原文链接:https://www.jianshu.com/p/9e0f3fc5a3b4Android使用 Camera ...

音视频开发进阶 1716

【某音电商】protobuf聊天协议逆向

某音电商私信、聊天消息protobuf协议逆向分析与解析

吴秋霖的博客 2315

学Simulink--复杂路况场景实例:基于Simulink的智能车辆高速公路行驶仿真(超车与车道变换)

本文详细介绍了基于Simulink的智能车辆高速公路超车仿真系统设计方法。系统包含多车道交通流建模、三层超车决策逻辑(触发条件、可行性检查、执行许可)、五次多项式变道轨迹规划以及横向纵向协同控制等核心模块。通过设定三车道场景(自车初始速度100km/h,前方慢车72km/h),演示了如何实现安全高效的左变道超车全过程(5秒完成3.75m横向移动),并验证了变道平滑性(最大横向加速度1.8m/s²)和安全距离(最小TTC 5.2s)。文章还强调了传感器融合的必要性,并提供了从交通流生成到控制器设计的完整Sim

xiaoheshang_123的博客 397

SurfaceView之Android Camera预览

目录 前言 正文 SurfaceView类的创建。 前言 最近在研究OpenGL ES,发现关于Camera的基础部分还没理清楚,于是抱着打地基的态度先来弄下Camera以SurfaceView为载体的预览。这里只讲使用,原来比较复杂,后续有机会再补充。废话不多说马上进入正文。 正文 SurfaceView类的创建。 package com.example.mytest.camera import android.content.Context import android.graphi

weixin_39971470的博客 734

大数据领域数据产品的交通运输行业应用

您是否经历过早高峰被堵在桥上,看着导航显示“前方5公里缓行”却无能为力?是否见过货车司机绕远路导致成本飙升?这些“交通痛点”的背后,是传统交通管理依赖经验决策的局限。本文将聚焦“大数据数据产品”这一核心工具,从技术原理到实际应用,全面解析它如何为交通运输行业“开天眼”,解决从城市拥堵到物流效率的一系列难题。本文将按照“问题引入→概念拆解→技术原理→实战案例→应用场景→未来趋势”的逻辑展开,用生活化比喻降低理解门槛,用代码和数学模型提升专业性,最终帮您建立“大数据+交通”的完整认知框架。交通数据。

操作系统内核探秘的博客 237

Android Camera SurfaceView 获取预览数据

简介 Android 调用相机拍照,相信大家已经很熟悉了,通过Intent指定Action和Category,再通过startActivityForResult()获取到拍照的回调,这样获取的是系统相机,我们只能得到它拍摄的图片,再进行后续处理。有些功能,比如视频直播,美颜相机,需要对相机预览的图像进行处理,这时候我们就需要通过Android的相机Camera来进行操作。文章主要...

renlei0012的博客 6171

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera 预览之SurfaceView、TextureView、GLSurfaceView(一)

最近在做一个VR项目,使用到Camera功能从项目的不同需求从最开始使用SurfaceView、到TextureView一直到GLSurfaceView。 SurfaceView 官网的解释是: Provides a dedicated drawing surface embedded inside of a view hierarchy. You can control the format

Android再出发 3504

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Android Camera开发避坑指南:SurfaceView预览的正确打开方式

本文深入探讨了Android Camera开发中SurfaceView预览的核心机制与常见问题。针对生命周期管理、预览尺寸适配、画面方向校正等关键难点,提供了经过实战检验的健壮实现方案与性能优化建议,帮助开发者避免黑屏、拉伸等典型问题,实现稳定高效的相机预览功能。

2w3e4r5t6y的博客 893

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android camera surfaceview 变形,Android SurfaceView预览变形完美解决方法

这个问题百度上一搜一大把,基本上都是说找到和SurfaceView的比例相近的camera预览尺寸,但是发现预览时候还是差了点意思,具体看下面这个回调就知道是为什么了。@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {Log.i(TAG, "surfaceCha...

weixin_39617006的博客 473

Android 分别使用 SurfaceView 和 TextureView 来预览 Camera,获取NV21数据

本文目的 使用 Camera API 进行视频的采集,分别使用 SurfaceView、TextureView 来预览 Camera 数据,取到 NV21 的数据回调 准备工作 添加相机权限 <uses-permission android:name="android.permission.CAMERA" /> 注意:camera预览回调中默认使用NV21格式 UI 准备 &...

LiPine的专栏 4119

android surface 数据怎么取,Android Camera SurfaceView 获取预览数据

简介Android 调用相机拍照,相信大家已经很熟悉了,通过Intent指定Action和Category,再通过startActivityForResult()获取到拍照的回调,这样获取的是系统相机,我们只能得到它拍摄的图片,再进行后续处理。有些功能,比如视频直播,美颜相机,需要对相机预览的图像进行处理,这时候我们就需要通过Android的相机Camera来进行操作。文章主要偏使用,不会过多的将...

weixin_42513616的博客 1821

Camera开发中使用surfaceview预览自适应比例

前言 app需要增加类似美拍的段视频拍摄功能,在实际的开发中碰到surface view预览的变形。参考了网上的资料,提出了解决办法 思路 在camera的开发中,因为不同手机硬件的原因,所支持的分辨率都不一样,所以在surface view预览的时候需要同时考虑到surface view的大小比例以及camera的画面比例,然而在设置比例尺的时候如若传入不支持的宽高,camera的

sung_ll的博客 4733

android 圆形相机预览拍照_Android Camera SurfaceView 预览拍照

Android使用Camera API + SurfaceView 方式进行预览拍照。1、创建一个SurfaceView,并实现SurfaceHolder的回调。由于Camera在SurfaceView中是通过SurfaceHolder 使得Surfaceview能够预览Camera返回的数据,因此我们需要实现SurfaceHolder 的回调,实现图如下:public class CameraS...

weixin_39603132的博客 645
上一篇: 用nginx-rtmp-module搭建rtmp流媒体服务器
下一篇: 直播推流方案及过程分解
清风依然
博客等级 码龄12年 14粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值