android Camera2 录像 TextureView 异常 困扰两天了 求大佬指点 [问题点数:150分]

Bbs1
本版专家分:0
结帖率 0%
Bbs4
本版专家分:1248
Blank
技术圈认证(专家版) 博客专家完成年度认证,即可获得
Blank
GitHub 绑定GitHub第三方账户获取
Android Camera2 模块解析之视频录制

转载: https://www.jianshu.com/p/779c3dc775e9 拍照和录制视频的前期功能都是类似的,在拍照之前会有camera preview功能,录制视频之前也是有这个功能的,唯一的不同就是抓取的数据不同,拍照抓取的是image,视频抓取的video,数据组织格式不一样。 录制视频主要是调用了<em>Camera</em>Device与<em>Camera</em>CaptureSession来录制视频,使用...

Android 使用Camera2 实现拍照录像的功能

职场小白迷上优美句子: 还是电影 《无问西东》中的台词,这句有点感人: 沈光耀的妈妈对沈光耀说:"当初你离家千里,来到这个地方读书,你父亲和我都没有反对过,因为,是我们想你,能享受到人生的乐趣,比如读万卷书行万里路,比如同你喜欢的女孩子结婚生子。注意不是给我增添子孙,而是你自己,能够享受为人父母的乐趣,你一生所要追<em>求</em>的功名利禄,没有什么是你的祖上没经历过的,那些只不过是人生的幻光。我怕,你还...

Android Camera2 如何同时前后摄像头录像

同时预览preview能实现,点击按钮进行同时<em>录像</em>怎么做?(要解决线程问题) ![图片说明](https://img-ask.csdn.net/upload/<em>2</em>01903/06/1551844380_957834.jpg) 有酬!

Android Camera2 拍照(二)——使用TextureView

上一篇博文简单介绍了使用<em>Camera</em><em>2</em> API拍摄照片,并使用SurfaceView作为预览界面。实际上,相对于SurfaceView, <em>TextureView</em>更适合用于视频和拍摄照片。SurfaceView也有它的使用场合,这将在另外一篇中阐述。本文将使用<em>TextureView</em>作为预览界面,再次向大家展示<em>Camera</em><em>2</em> API的简单应用。 1,定义<em>TextureView</em>作为预览界面 在布局文

Android 自定义Camera + TextureView拍照

Android 自定义<em>Camera</em> + <em>TextureView</em>拍照 自定义camera需要注意这几点: camera预览的角度。 textureview的宽高比和camera预览时设置的宽高比。 拍照之后图片的旋转角度。 在自定义相机之前可以看下这篇文章,了解一下相机传感器的方向问题https://blog.csdn.net/c10WTiybQ1Ye3/article/details/7809...

TextureView实现相机预览、拍照功能

<em>TextureView</em>实现相机预览、拍照功能 效果图 下载链接 https://download.csdn.net/download/qq_38355313/10717497 1、首先AndroidManifest添加相机使用权限 &amp;lt;!-- 相机相关 --&amp;gt; &amp;lt;uses-permission <em>android</em>:name=&quot;<em>android</em>.permission.WRI...

Android流媒体开发之路一:Camera2采集摄像头原始数据并手动预览

Android <em>Camera</em><em>2</em>采集摄像头原始数据并手动预览 最近研究了一下<em>android</em>摄像头开发相关的技术,也看了Google提供的<em>Camera</em><em>2</em>Basic调用示例,以及网上一部分代码,但都是在<em>TextureView</em>等预览基础上实现,而我想要做的是在不预览的情况下,能获取到摄像头原始数据流,并由自己来决定是否绘制显示。经过一番折腾,初步实现了自己的目的——CamCap程序。 需<em>求</em>分析   其...

android6.0 camera2 录像 MediaRecorder.getsurface 失败

Android版本:6.0,实现功能:<em>录像</em> 代码如下: mMediaRecorder = new MediaRecorder(); mMediaRecorder.setVideoSource(Medi

MediaRecorder的几个常见坑

一、问题代码private void initRecord() throws IOException { mMediaRecorder = new MediaRecorder(); mMediaRecorder.reset(); if (m<em>Camera</em> != null) mMediaRecorder.set<em>Camera</em>(mCam

Camera2 打开相机预览界面

camrea<em>2</em> api打卡相机预览界面

Camera2TextureView使用

1 package com.intsig.bcrsdk.demo.Activity; <em>2</em> 3 import <em>android</em>.annotation.TargetApi; 4 import <em>android</em>.app.Activity; 5 import <em>android</em>.graphics.SurfaceTexture; 6 import <em>android</em>.hardwa...

Android:使用MediaRecorder录制高清视频,TextureView预览

用户权限获取 &amp;lt;uses-permission <em>android</em>:name=&quot;<em>android</em>.permission.CAMERA&quot; /&amp;gt; &amp;lt;uses-permission <em>android</em>:name=&quot;<em>android</em>.permission.RECORD_AUDIO&quot; /&amp;gt; &amp;lt;uses-permission <em>android</em>:name=&quot;<em>android</em>.permission...

Android camera 预览变形

camera竖向预览,surfaceView是4:3,宽是屏幕宽度,高是屏幕宽度的3/4,previewSize也是4:3 的,但是预览还是变形,需要怎么处理呢![图片说明](https://img-ask.csdn.net/upload/<em>2</em>01608/31/147<em>2</em>61<em>2</em>016_57366.png)

android Camera2+TextureView自定义相机开发

前言:系统相机满足不了自定义界面的需<em>求</em>,这时候可以用<em>Camera</em><em>2</em>和<em>TextureView</em>相结合的方式。 参考:Android:<em>Camera</em><em>2</em>开发详解(上):实现预览、拍照、保存照片等功能 这位作者写得已经非常好了,我的DEMO只不过是改了点东西,一个是kotlin语言改成java语言,一个是新增了对拍照后图片角度和大小的处理以及图片的保存,这里稍微讲一下: 1、用<em>Camera</em><em>2</em>拍照,前置摄...

Camera api2完成预览、拍照录像的流程讲解

<em>Camera</em> api<em>2</em> 完成预览、<em>录像</em>、拍照的流程详解

最新平台camera2 API录制视频源码下载

本资源是基于Android8.1平台,使用camera<em>2</em> API进行视频录制的实例源码,可以直接运行,值得开发者参考使用。 相关下载链接://download.csdn.net/download/so

Android自定义控件系列八:详解onMeasure()(二)--利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题

上一篇文章详细讲解了一下onMeasure/measure方法在Android自定义控件时的原理和作用,参看博文:Android自定义控件系列七:详解onMeasure()方法中如何测量一个控件尺寸(一),今天就来真正实践一下,让这两个方法大显神威来帮我们搞定图片的屏幕适配问题。 在Android应用中,都少不了图片的显示,ImageView,轮播图,ViewPager等等,很多都是来显示图片的,比如一个广告条的轮播效果,参看博客:广告条效果实现----ViewPager加载大图片(LruCache)以及

Android 自定义使Camera 自定义拍照模糊不清。

在网上下了一个demo 自定义<em>Camera</em> 发现拍照预览的时候 清晰,保存后打开照片很模糊 效果如图所示: 后面查了很久,保存图片文件的代码也是常规代码 /** * 保存Bitmap到sdcard * * @param b 得到的图片 */ public static void saveBitmap(Bitmap b) { ...

Android 自定相机 Camera 部分手机 预览时、拍照都模糊问题

各位帅哥、美女:Android 自定相机 surfaceView ,<em>Camera</em> 部分手机 预览时、拍照都模糊问题, 没有预览、拍照没有模糊的手机,把屏幕为竖屏,在清单文件里面配成横屏也模糊了,请问各位遇到过吗???

Android camera的图像在TextureView中预览时的图像拉伸问题

在开发视频相关的app时,采用了<em>TextureView</em>作为图像预览的控件,据说这个控件比surfaceView好。那么问题来了我摄像头获取到的图像在<em>TextureView</em>中显示时被拉宽了。 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:<em>android</em>="http://schemas.<em>android</em>...

TextureView实现视频录制

https://<em>android</em>.googlesource.com/platform/development/+/4b737b6/samples/browseable/MediaRecorder/src/com.example.<em>android</em>.mediarecorder/MainActivity.java /* * Copyright (C) <em>2</em>013 The Android Open Sour

Android拍视频预览的界面被拉伸

最近 Android 需要做一个拍视频保存然后上传的功能,基本功能实现了,但是有一个小 bug,就是预览的时候界面明显被拉长了,但是各种预览设置的参数也都试过了,都没有用,来请教一下。 #代码如下: ##1. Activity ``` public class RecordActivity extends AppCompatActivity implements SurfaceHolder.Callback { private SurfaceView mSurfaceView; private SurfaceHolder mSurfaceHolder; private Button btnStartStop; private boolean isRecording = false; // 标记是否已经在录制 private MediaRecorder mRecorder; // 音视频录制类 private <em>Camera</em> m<em>Camera</em> = null; // 相机 private List mSupportedPreviewSizes = null; private <em>Camera</em>.Size mPreviewSize; private <em>Camera</em>.Size mSize = null;// 相机的尺寸 private int m<em>Camera</em>Facing = <em>Camera</em>.<em>Camera</em>Info.CAMERA_FACING_BACK; // 默认后置摄像头 private static final SparseIntArray orientations = new SparseIntArray(); // 手机旋转对应的调整角度 static { orientations.append(Surface.ROTATION_0, 90); orientations.append(Surface.ROTATION_90, 0); orientations.append(Surface.ROTATION_180, <em>2</em>70); orientations.append(Surface.ROTATION_<em>2</em>70, 180); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initWindow(); setContentView(R.layout.activity_record); initViews(); } /** * 初始化窗口 */ private void initWindow() { requestWindowFeature(Window.FEATURE_NO_TITLE); // 去掉标题栏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 设置全屏 // 设置竖屏显示 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // 选择支持半透明模式,在有 surfaceView 的 activity 中使用。 getWindow().setFormat(PixelFormat.TRANSLUCENT); } /** * 视图对象初始化 */ private void initViews() { mSurfaceView = (SurfaceView) findViewById(R.id.surfaceview); btnStartStop = (Button) findViewById(R.id.btnStartStop); btnStartStop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!isRecording) { startRecord(); } else { stopRecord(); } } }); SurfaceHolder holder = mSurfaceView.getHolder(); // 取得holder holder.setFormat(PixelFormat.TRANSPARENT); holder.setKeepScreenOn(true); holder.addCallback(this); // holder加入回调接口 } /** * 初始化相机 */ private void init<em>Camera</em>() { /** * 默认打开后置摄像头 */ if (<em>Camera</em>.getNumberOf<em>Camera</em>s() == <em>2</em>) { m<em>Camera</em> = <em>Camera</em>.open(m<em>Camera</em>Facing); } else { m<em>Camera</em> = <em>Camera</em>.open(); } <em>Camera</em>SizeComparator sizeComparator = new <em>Camera</em>SizeComparator(); <em>Camera</em>.Parameters parameters = m<em>Camera</em>.getParameters(); if (mSize == null) { mSupportedPreviewSizes = parameters.getSupportedPreviewSizes(); Collections.sort(mSupportedPreviewSizes, sizeComparator); for (int num = 0; num < mSupportedPreviewSizes.size(); num++) { <em>Camera</em>.Size size = mSupportedPreviewSizes.get(num); if (size.width >= 1000 && size.height >= 1000) { this.mSize = size; break; } } mSize = mSupportedPreviewSizes.get(0); /** * 增加对聚焦模式的判断 */ List focusModesList = parameters.getSupportedFocusModes(); if (focusModesList.contains(<em>Camera</em>.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) { parameters.setFocusMode(<em>Camera</em>.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); } else if (focusModesList.contains(<em>Camera</em>.Parameters.FOCUS_MODE_AUTO)) { parameters.setFocusMode(<em>Camera</em>.Parameters.FOCUS_MODE_AUTO); } m<em>Camera</em>.setParameters(parameters); } int rotation = getWindowManager().getDefaultDisplay().getRotation(); int orientation = orientations.get(rotation); m<em>Camera</em>.setDisplayOrientation(orientation); } @Override protected void onResume() { super.onResume(); init<em>Camera</em>(); } @Override public void onPause() { release<em>Camera</em>(); super.onPause(); } /** * 开始录制 */ private void startRecord() { if (mRecorder == null) { mRecorder = new MediaRecorder(); // 创建MediaRecorder } if (m<em>Camera</em> != null) { m<em>Camera</em>.stopPreview(); m<em>Camera</em>.unlock(); mRecorder.set<em>Camera</em>(m<em>Camera</em>); } try { // 设置音频采集方式 mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); // 设置视频的采集方式 mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); /* mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); // 设置文件的输出格式 mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); // 设置audio的编码格式 mRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H<em>2</em>64); // 设置video的编码格式 mRecorder.setVideoEncodingBitRate(10 * 10<em>2</em>4 * 10<em>2</em>4); // 设置录制的视频编码比特率 mRecorder.setVideoFrameRate(30); // 设置录制的视频帧率 mRecorder.setVideoSize(19<em>2</em>0, 1080); // 设置相机分辨率 */ // 设置要捕获的视频的宽度和高度 // mSurfaceHolder.setFixedSize(optimalSize.width, optimalSize.height); mRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)); // 设置记录会话的最大持续时间(毫秒) mRecorder.setMaxDuration(180 * 1000); mRecorder.setPreviewDisplay(mSurfaceHolder.getSurface()); /** * 获取外部路径,然后将视频保存进去 */ String path = Environment.getExternalStorageDirectory().getPath(); if (path != null) { File dir = new File(path + "/crafts_videos"); if (!dir.exists()) { dir.mkdir(); } /** * 将 currentTimeMillis() 作为文件名 */ path = dir + "/" + System.currentTimeMillis() + ".mp4"; mRecorder.setOutputFile(path); //设置输出文件的路径 mRecorder.prepare(); //准备录制 mRecorder.start(); //开始录制 isRecording = true; btnStartStop.setText("停止"); } } catch (Exception e) { e.printStackTrace(); } } /** * 停止录制 */ private void stopRecord() { try { mRecorder.stop(); // 停止录制 mRecorder.reset(); // 重置 btnStartStop.setText("开始"); } catch (Exception e) { e.printStackTrace(); } isRecording = false; } /** * 释放 MediaRecorder */ private void releaseMediaRecorder() { if (mRecorder != null) { mRecorder.release(); mRecorder = null; } } /** * 释放相机资源 */ private void release<em>Camera</em>() { try { if (m<em>Camera</em> != null) { m<em>Camera</em>.stopPreview(); m<em>Camera</em>.setPreviewCallback(null); m<em>Camera</em>.unlock(); m<em>Camera</em>.release(); } } catch (RuntimeException e) { } finally { m<em>Camera</em> = null; } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // 将holder,这个holder为开始在onCreate里面取得的holder,将它赋给mSurfaceHolder mSurfaceHolder = holder; if (m<em>Camera</em> == null) { return; } try { //设置显示 m<em>Camera</em>.setPreviewDisplay(holder); m<em>Camera</em>.startPreview(); } catch (Exception e) { e.printStackTrace(); release<em>Camera</em>(); finish(); } } @Override public void surfaceCreated(SurfaceHolder holder) { // 将holder,这个holder为开始在onCreate里面取得的holder,将它赋给mSurfaceHolder mSurfaceHolder = holder; try { m<em>Camera</em>.setPreviewDisplay(mSurfaceHolder); m<em>Camera</em>.startPreview(); } catch (IOException e) { e.printStackTrace(); } } @Override public void surfaceDestroyed(SurfaceHolder holder) { // surfaceDestroyed的时候同时对象设置为null if (isRecording && m<em>Camera</em> != null) { m<em>Camera</em>.lock(); } mSurfaceView = null; mSurfaceHolder = null; releaseMediaRecorder(); release<em>Camera</em>(); } private class <em>Camera</em>SizeComparator implements Comparator { public int compare(<em>Camera</em>.Size lhs, <em>Camera</em>.Size rhs) { if (lhs.width == rhs.width) { return 0; } else if (lhs.width > rhs.width) { return 1; } else { return -1; } } } } ``` ##<em>2</em>. 布局 ``` ``` ##3. 权限 ``` ``` <em>求</em>大神解答

Android Camera 预览图像被拉伸变形的解决方法

问题描述:预览图像被拉伸变形 问题原因:由于预览图像大小跟SurfaceView 大小不一致引起 解决方法: 获取系统支持的所有预览尺寸[getSupportedPictureSizes],然后再取一个比较接近的尺寸进行设置[setPreviewSize] 选择最佳尺寸方法: private Point getBest<em>Camera</em>Resolution(Came

android textureview 如何超过屏幕大小

<em>android</em> textureview 怎么能把视频放大得超过屏幕的大小不变形 ?textureview .setLayoutParams 可以改变大小 但是不能超过屏幕的大小 如果超过屏幕的大小 就

获取屏幕宽高比例互相转化的工具(DisplayUtils)

import <em>android</em>.app.Activity; import <em>android</em>.content.Context; import <em>android</em>.util.DisplayMetrics; import <em>android</em>.util.TypedValue; /** * @author J.query * @date <em>2</em>016/5/<em>2</em>6 * @email j-query@foxmail....

使用camera2设置全屏TextureView却不显示为全屏的解决办法

找到自己<em>TextureView</em>的onMeasure()方法,如果使用的是官方demo,那代码应该如下: @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int ...

Android Camera2教程之打开相机、开启预览、实现PreviewCallback、拍照

转载请注明出处: http://blog.csdn.net/lb3774633<em>2</em>3/article/details/5<em>2</em>740411 Android API <em>2</em>1新增了<em>Camera</em><em>2</em>,这与之前的camera架构完全不同,使用起来也比较复杂,但是功能变得很强大。 在讲解开启预览之前,首先需要了解camera<em>2</em>的几个比较重要的类: <em>Camera</em>Manager: 管理手机上的所有摄像头设备,它的...

关于使用Camera2+TextureView实现相机预览,如何停止预览

我在调用了<em>Camera</em>CaptureSession的setRepeatingRequest()实现预览后,想要停止预览,于是调用了stopRepeating()方法,这样做之后,预览确实停止了,可<em>TextureView</em>显示的是最后一刻的预览画面,我希望在停止预览后<em>TextureView</em>能恢复空白,请问该怎么实现?

Camera专题】Camera绿屏红屏问题解析

问题1. 问题模组:三星s5k4h7模组 模组厂:光阵 单体问题:只发现一颗 问题概率:打开<em>Camera</em>,预览100%绿屏 现象截图: <em>2</em>.解决 步骤1:我们先在渡信板上点亮这个摄像头,发现预览界面是正常的。 但是在高通平台上点亮,就出现绿屏问题,两者唯一的区别就是OTP。 因此我们怀疑可能是OTP的问题! 步骤<em>2</em>:移除OTP代码,重新在高通平台点亮摄像头,预览ok! 步步排查,最终确认...

Camera拍摄时,预览会变成绿屏

如果排除硬件的问题的话可能有以下问题: 1.你拍摄的照片是好的,但是预览定格的时候显示绿条,那么是你的预览参数设置错误,看下camera.getParameters中参数设置是否正确,如果你的Parmeters中高宽参数不符合相机高宽的话就会有绿条。 <em>2</em>.如果是你的图片存储有绿条就应该看你存储照片的格式像素方面的问题,具体就是camera.takePicture中参数,看下参数类的实现方法。 ...

MediaRecorder 录制花屏的问题

今天写了一个 视频录制的东东,在努比亚上

android mediarecorder自制录相机花屏问题

今天在写使用mediarecorder进行<em>录像</em>时,遇到了花屏的问题,在魅族上面一切正常,但是在小米上面,就会出现花屏的现象。针对这个问题,我也在网上,好好搜了一把,在这里我主要是参考了:http://blog.csdn.net/top_along/article/details/16368379的文章,你们也可以看看。 这是一段初始化相机的代码: private void initCa

android中java.lang.IllegalStateException异常产生的原因及解决办法

11-09 13:33:56.080: E/MediaRecorder(19865): stop called in an invalid state: 0 11-09 13:33:56.080: I/MediaRecorder(19865): stop 11-09 13:33:56.080: E/MediaRecorder(19865): stop called in an invalid st

新人助 关于自定义SurfaceView的onMeasure()方法被调用时刻

新人第一次发帖,哪里不妥还请见谅 最近学习自定义SurfaceView,按照教程其他的都已经写好了,在重写onMeasure()时先直接使用super.onMeasure(),(了解到默认的行为会设置

自定义TextureView录制视频的一些初始化

public class Vedio<em>TextureView</em> extends <em>TextureView</em> { private MediaPlayer mediaPlayer; private boolean isPrepared = false; private boolean isRecord = false; private boolean isPlay = fa...

TextureView实现自定义相机预览、拍照

<em>TextureView</em>实现自定义相机预览、拍照,自定义调整照片,图像变形等

助 关于android27的TextureView的错误

最近在研究自定义相机,准备用<em>TextureView</em>投影相机的画面。并且引用了他人的demo后,可以成功实现。 但是在整合进自己的项目时,<em>TextureView</em>的使用却出现了问题 XML文件: <Tex

Android项目小结——可对焦的视频录制(MediaRecorder与TextureView实现)

一直在做安卓的项目,想着找个时间总结一下,可能太懒了,一直没总结。 代码(尤其是对焦框显示)参考了许多Blog和Github,修修补补改改挺多地方,记录一下,侵删私信或注明出处。 录制 主要的类 MediaRecorder:安卓封装的视频录制的类 AutoFit<em>TextureView</em>:继承自<em>TextureView</em>,实现自定义纵横比缩放,视频录制基于该组件。 AnimationImageVie...

android平台下OpenGL ES 3.0使用TextureView对相机Camera预览实时处理

<em>android</em>平台下OpenGL ES 3.0使用<em>TextureView</em>对相机<em>Camera</em>预览实时处理 实现一个基本的相机处理类:<em>Camera</em>V1Pick,用来处理相机采集的相关操作 下面是几个比较关键的类: public class <em>Camera</em>V1Pick implements <em>TextureView</em>.SurfaceTextureListener { private static f...

Android 自定义View 之测量过程(onMeasure)

一、测量的目的        如果安卓的布局体系中全部都是精确的值,那就没有必要关心测量过程了。事实上,在布局文件中写的布局参数都是match_parent,wrap_parent或者精确值。        测量的目的就是为了将match_parent,wrap_parent这些相对大小,转换为具体的值。 二、测量的依据         应用开发者有三种方式表示长宽:match_paren

Android camera2相机预览+后台录制+悬浮窗播放视频流

1. 使用<em>android</em>.hardware.camera<em>2</em>打造新的自定义相机 https://blog.csdn.net/qq_<em>2</em>751<em>2</em>671/article/details/510<em>2</em>6794 https://github.com/miqt/camera<em>2</em> 2.<em>android</em>关闭手机偷录她人功能实现(退出程序依然<em>录像</em>) 注意:6.0以上需要获得显示在其他图层之上显示的权限 https...

Android控件--TextureView

1、简介应用程序的视频或者opengl内容往往是显示在一个特别的UI控件中:SurfaceView。SurfaceView的工作方式是创建一个置于应用窗口之后的新窗口。这种方式的效率非常高,因为SurfaceView窗口刷新的时候不需要重绘应用程序的窗口(<em>android</em>普通窗口的视图绘制机制是一层一层的,任何一个子元素或者是局部的刷新都会导致整个视图结构全部重绘一次,因此效率非常低下,不过满足普通应

Android-Camera2api实现点击拍照长按录制

<em>Camera</em><em>2</em> api实现点击拍照,长按录制

Android Camera2 API preview record take picture

Android <em>Camera</em><em>2</em> API预览 拍照和<em>录像</em> 使用到的接口是<em>Camera</em><em>2</em>,MediaRecorder,ImageReader, TODO 文章会在明天更新。

Android4.0 SurfaceTexture

source link: http://developer.<em>android</em>.com/reference/<em>android</em>/graphics/SurfaceTexture.html public class SurfaceTexture Class Overview: Captures frames from an image stream as an OpenGL ES tex

Android-->如何填MediaRecorder的坑(附TextureView的使用)

在Android系统中,<em>录像</em>官方使用的是MediaRecorder,这也是<em>录像</em>的正确姿势.因为系统已经帮你控制了很多复杂流程,复杂的转码操作,总之…当然,矫情的你也可以使用MediaCodec录制,这样就可以单独控制音频和视频了. 您可以移步至:http://blog.csdn.net/angcyo/article/details/51043367 查看相关资料;竟然是官方的东西, 为什么文章标题

自己写的照相机预览(SurfaceView)

可能隔得一段时间,自己写的东西就忘记了。所以记录下 这是在一家公司做图片识别时写的一个照相机预览,也带了照片生成的方法,照片是从预览帧里抓帧生成的。即看即所得,我喜欢这种方式。public class YK<em>Camera</em> extends ViewGroup implements SurfaceHolder.Callback, View.OnTouchListener, <em>Camera</em>.

android仿微信录制短视频,拍照,自动聚焦,手动聚焦,滑动缩放功能(Camera+TextureView+rxjava实现)

1:需<em>求</em>分析 先上图看效果 a:拍照时,中间的拍照按钮稍微小些,单击可以拍照,长按时中间的拍照按钮变大,并有进度提示拍摄视频进度 b:中间区域可以手势缩放,单击时可以根据该点进行拍摄/拍照对焦,界面上显示对焦动画c:长按拍摄视频时手指在屏幕上上滑放大,下滑缩小焦距d:拍完视频时界面上有刚才拍摄的视频预览效果,拍照完时显示拍的图片<em>2</em>:对焦控件实现就是点击界面时有个绿色中间框由大变小的动画 不多

android开发之textureview绑定camera实现拍照功能

最近要整理的东西比较多,比较乱,一个一个来把,自定义layout实现recyclerview的下拉刷新和上拉加载还是没有什么思路。刚好前几天上司让我做几个关于camera的界面,我就先介绍下camera把,<em>android</em>4.0后更新了一个控件,textureview,个人感觉而言,它比surfaceview好用很多,不多说,上代码:textureview.addOnLayoutChangeListe

利用TextureView来实现拍照功能

很简单直接上源码import <em>android</em>.Manifest; import <em>android</em>.content.pm.PackageManager; import <em>android</em>.graphics.Color; import <em>android</em>.graphics.SurfaceTexture; import <em>android</em>.hardware.<em>Camera</em>; import <em>android</em>.os.Bundl

基于Android TextureView与SurfaceTexture实现相机Camera拍照预览与保存照片

基于Android <em>TextureView</em>与SurfaceTexture实现相机<em>Camera</em>拍照预览与保存照片写一个简单的例子,实现一个常见的开发功能:拍照功能。技术路线:通过<em>TextureView</em>的通道获取SurfaceTexture作为相机的预览,然后通过<em>Camera</em>的take方法把相机抓取的byte字节数据转换为Bitmap,然后存放到手机的存储器上,至此,一个最简单的拍照功能完成。注意,本

Android openGl开发详解(二)——通过SurfaceView,TextureView,GlSurfaceView显示相机预览(附Demo)

最近公司在做自定义相机这一块,之前使用的是第三方,后来需<em>求</em>变更,第三方不支持添加动态贴纸,所以只能自己扩展。当然网上有很多例子,但是关于添加动态贴纸的例子几乎找不到,反正我是没找到(欲哭无泪)。当然,现在是所有功能都实现了。觉得openGl还是蛮有意思的,所以从头再梳理一遍,打算整理一个openGl的学习系列。供学习参考。如果对OpenGl没有了解的话,推荐先看Android openGl开...

TextureView 实现相机的预览 、拍照、自动聚焦、人脸识别

<em>TextureView</em> 实现相机的预览 、拍照、自动聚焦、人脸识别

android中对View的onMeasure()方法的理解

在<em>android</em>开发中,很多人对自定义View是望而生畏,我也一样,但这又是向高级进阶的必经之路,主要是对View里面的很多方法不知道怎么理解,其中一个就是onMeasure()方法,网上有很多这样解释说明,可能是由于我的领悟力有限,一直没能搞明白,今天有点空,好好研究一下,并记录下来,也希望对大家有所帮助。 首先,我自定义一个MyView,继承于View,onMeasure()方法不做处理,直接

Android 自定义 view(四)—— onMeasure 方法理解

前言: 前面我们已经学过《Android 自定义 view(三)—— onDraw 方法理解》,那么接下我们还需要继续去理解自定义view里面的onMeasure 方法 推荐文章:

android Multimedia实战(一)详解SurfaceView,TextureView之播放视频的四种方式

在Android中,我们有四种方式来实现视频的播放: 1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。<em>2</em>、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。3、使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。4、使用MediaPlayer类和Te

Android关于TextureView理解及基本使用

Android关于<em>TextureView</em>理解、基本使用

自定义Camera系列之:SurfaceView + Camera2

一、前言 之前已经介绍过过时的旧 <em>Camera</em> 的使用了,毕竟在从 Android 5.0 后推荐使用 <em>Camera</em><em>2</em> 了,所以现在开始介绍 <em>Camera</em><em>2</em> 相关使用。老规矩还是从 SurfaceView 说起。 如果你对 <em>Camera</em><em>2</em> 的相关类和接口还不熟悉,可以先看看下面这些介绍: <em>Camera</em>Manager详解 <em>Camera</em>Device详解 <em>Camera</em>Characteristics详解...

SurfaceView, TextureView, SurfaceTexture等的区别

转自:https://www.cnblogs.com/wytiger/p/5693569.html SurfaceView, GLSurfaceView, SurfaceTexture以及<em>TextureView</em>是Android当中名字比较绕,关系又比较密切的几个类。本文基于Android 5.0(Lollipop)的代码理一下它们的基本原理,联系与区别。 SurfaceView 从An...

Android 自定义view 和 onMeasure方法介绍

转自:http://blog.csdn.net/cyq10<em>2</em>8/article/details/7390631 http://blog.csdn.net/sunny<em>2</em>come/article/details/7<em>2</em>87<em>2</em>98 哈哈,兄弟我终于自己写了一个view,不是网上那种简单的哦,还是有一定技术含量的, 我是通过学习ApiDemo(<em>android</em>自带的sample)里面La

在中国程序员是青春饭吗?

今年,我也3<em>2</em>了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前<em>2</em>题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的<em>2</em>5%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;<em>2</em>.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今<em>2</em>500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

美团面试,问了ThreadLocal原理,这个回答让我通过了

他想都想不到,ThreadLocal我烂熟于心

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这1<em>2</em>个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

2020春招面试了10多家大厂,我把问烂了的数据库事务知识点总结了一下

<em>2</em>0<em>2</em>0年截止目前,我面试了阿里巴巴、腾讯、美团、拼多多、京东、快手等互联网大厂。我发现数据库事务在面试中出现的次数非常多。

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

C 语言中,x += 5 == 4 是什么意思?

#讨论这个有意义吗?这个是在知乎上看到的一个问题,评论挺多的。其中有人提到,研究这个东西有什么用?编程的时候我们不能这么写的。我记得在大学的时候,我们的副院长给我们上课,就给我们提到,...

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

PHP在线学习计划下载

PHP在线学习计划轻松学习 相关下载链接:[url=//download.csdn.net/download/weiwei9123/4340999?utm_source=bbsseo]//download.csdn.net/download/weiwei9123/4340999?utm_source=bbsseo[/url]

android第一个程序hello world 的编写视频教程下载

在android环境下编程开发应用软件,是网易公开课视频,老外讲的课,很不错,希望能够班组到你。 相关下载链接:[url=//download.csdn.net/download/xfy1970/10279993?utm_source=bbsseo]//download.csdn.net/download/xfy1970/10279993?utm_source=bbsseo[/url]

dwr.jar 貌似很好用的下载

dwr.jar 貌似很好用的 dwr.jar 貌似很好用的 dwr.jar 貌似很好用的 相关下载链接:[url=//download.csdn.net/download/lzgaiccg/1727923?utm_source=bbsseo]//download.csdn.net/download/lzgaiccg/1727923?utm_source=bbsseo[/url]

我们是很有底线的