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

别再羡慕专业版!用这个批处理脚本,一键给Win11家庭版装上官方沙盒

本文详细介绍了如何通过批处理脚本在Windows 11家庭版上安装官方Windows沙盒(Windows Sandbox),无需复杂操作即可享受专业版功能。脚本自动激活系统内置组件,提供安全隔离的虚拟化环境,适用于软件测试、安全浏览等场景。

weixin_26757925的博客 496

Android开发之SurfaceView

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

wangxiaohigh 467

安装了anaconda,pycharm导入numpy时提示没有该包(模块)?

**问题详情:**我安装了anaconda,在利用Pycharm学习numpy这个库的时候,导入numpy这个包的时候提示我没有nummpy这个模块:No module named numpy.如下图所示。 应该说安装了Anaconda,里边就自带了numpy这个库,就应该能够使用。我一个新手怎么搞得懂呢?于是网上查了查找到了一个解决办法,说是我项目的解释器应该设置为Anaconda安装目录下的python.exe,而不应该是系统自带的:https://blog.csdn.net/aanndd77/art

qq_39820505的博客 1万+

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

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

mbrose的博客 1万+

在ArcGIS Pro软件中进行滑坡的敏感性和易发性分析

滑坡的敏感性和易发性分析需要综合地形、水文、地质及环境等多维数据,本文罗列了基于ArcGIS Pro软件进行的一系列可执行分析。

weixin_49609713的博客 1733

【Matlab】飞行器气动弹性仿真与分析

气动弹性是飞行器设计领域的核心交叉学科,融合了空气动力学、结构动力学和控制理论,主要研究飞行器结构在气动力作用下的弹性变形、振动响应及相互耦合规律,直接影响飞行器的飞行稳定性、操纵性和结构安全性。随着飞行器向高速度、高机动性、轻量化方向发展,气动弹性问题愈发突出,如颤振、发散、嗡鸣等现象,严重时会导致飞行器结构破坏甚至飞行事故,因此气动弹性仿真与分析已成为飞行器设计、验证和优化的关键环节。当前,飞行器气动弹性仿真面临诸多技术挑战:气动力与结构变形的强耦合特性难以精准描述,易出现仿真误差;

unber的博客 233

解决SurfaceView预览Camera拉伸问题

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

乌龟赛跑 1万+

Openclaw 错误分析 与 解决方案 之:Selected model is at capacity. Try a different model, or wait and retry.

Openclaw 错误分析 与 解决方案 :Selected model is at capacity. Try a different model, or wait and retry.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 6422

Android Camera SurfaceView 预览拍照

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

音视频开发进阶 1716

Allegro如何进行四层板板层设计

板层的设计

weixin_42499230的博客 3191

17、Nimble 包开发与并行编程指南

本文介绍了Nimble包的开发与版本管理流程,涵盖语义化版本控制规范及发布步骤;深入探讨了Nim中的并行编程基础,包括并发与并行的区别、threads模块与threadpool模块的使用方法及其差异;分析了线程执行的不确定性、线程池的优势,并提供了线程同步和资源管理的实践示例,帮助开发者高效构建稳定、高性能的Nim应用程序。

wine的专栏 56

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

抖音无水印视频爬虫实战:从抓包分析到批量下载指定用户作品

抖音作为当前最受欢迎的短视频平台,拥有海量的优质内容。很多用户希望备份自己或他人的作品,但抖音官方并未提供批量下载功能,且直接下载的视频带有平台水印。本文将带领大家从零开始,通过抓包分析、设备模拟、请求签名等核心技术,实现一个完整的抖音无水印视频爬虫系统。本文仅供技术学习和个人备份使用,请勿将爬取的内容用于商业用途或侵犯他人版权,爬取频率请控制合理范围内。目录一、前言二、技术栈概览三、准备工作3.1 环境搭建3.2 抓包分析步骤3.3 关键API发现四、核心技术解密4.1 X-Gorgon签名算法。

2201_76125261的博客 846

Android Camera SurfaceView 获取预览数据

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

renlei0012的博客 6171

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

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

2w3e4r5t6y的博客 893

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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、付费专栏及课程。

余额充值