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

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
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...

Android Studio Camera2录像功能

移动终端高级开发Android Studio <em>Camera</em><em>2</em>的<em>录像</em>功能 一:功能实现 利用MediaRecorder+<em>Camera</em><em>2</em>框架实现基本的<em>录像</em>功能,当APP启动时自动打开摄像头,点击按钮开始<em>录像</em>,点击按钮停止<em>录像</em>并将录制的视频文件保存在sdcard/my_video/中 二:操作步骤 1.在activity_main.xml中添加停止按钮 &lt;FrameLayout xmlns:an...

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 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>...

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

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

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

各位帅哥、美女:Android 自定相机 surfaceView ,<em>Camera</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

自定义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 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绑定camera实现拍照功能

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

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

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

利用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-->如何填MediaRecorder的坑(附TextureView的使用)

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

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

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

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-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 文章会在明天更新。

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

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

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

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

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个<em>异常</em>复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

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

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

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(<em>2</em>)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

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

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

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

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

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

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

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要<em>求</em>已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

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

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

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目<em>大佬</em>,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

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

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中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多个条件是什么逻辑关系?条件判断在什么时候执...

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

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

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

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

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

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

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

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法<em>求</em>解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

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

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

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过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年截止目前,我面试了阿里巴巴、腾讯、美团、拼多多、京东、快手等互联网大厂。我发现数据库事务在面试中出现的次数非常多。

程序员如何与产品经理优雅的干架

早前,平安产险科技一名外包程序员和一名外包产品经理干架的视频几乎在互联网圈都传遍了,因为产品提了一个需<em>求</em>:要<em>求</em>用户App的主题颜色能根据手机壳自动调整。 首先说这个需<em>求</em>对于应用开发工程师来说,确实是有点奇葩,当然并非不能实现。这块涉及图形图像处理,用机器学习和人工智能来提取图像颜色,这是基本图像识别过程,对于采集图像,可以提示对着镜子自拍一张,上传图片,通过大量的训练数据,来识别手机体颜色。当然并...

爬虫(101)爬点重口味的

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

在拼多多上班,是一种什么样的体验?我心态崩了呀!

之前有很多读者咨询我:武哥,在拼多多上班是一种什么样的体验?由于一直很忙,没抽出时间来和大家分享。上周末特地花点时间来写了一篇文章,跟大家分享一下拼多多的日常。 1. 倒时差的作息 可能很多小伙伴都听说了,拼多多加班很严重。这怎么说呢?作息上确实和其他公司有点区别,大家知道 996,那么自然也就能理解拼多多的“11 11 6”了。 所以当很多小伙伴早上出门时,他们是这样的: 我们是这样的: 当...

应聘3万的职位,有必要这么刁难我么。。。沙雕。。。

又一次被面试官带到坑里面了。面试官:springmvc用过么?我:用过啊,经常用呢面试官:springmvc中为什么需要用父子容器?我:嗯。。。没听明白你说的什么。面试官:就是contr...

太狠了,疫情期间面试,一个问题砍了我5000!

疫情期间找工作确实有点难度,想拿到满意的薪资,确实要点实力啊!面试官:Spring中的@Value用过么,介绍一下我:@Value可以标注在字段上面,可以将外部配置文件中的数据,比如可以...

自学编程的 6 个致命误区

嗨,小伙伴们大家好,我是沉默王二。本篇文章来和大家聊聊自学编程中的一些误区——这是我在 B 站上看了羊哥的一期视频后有感而发的文章。因为确实有很多读者也曾私信问过我这些方面的问题,很有代表性,所以我就结合自己的亲身体会来谈一谈,希望对小伙伴们有所启发。 01、追<em>求</em>时髦 所谓基础不牢,地动山摇啊。可很多小伙伴压根就没注意过这个问题,市面上出什么新鲜的技术就想去尝试,结果把自己学的乱七八糟,心灰意冷...

安卓App太能乱来了!被曝一天扫你后台1.3万次:小米系统更新,一不小心扯出惊人真相...

晓查 乾明 发自 凹非寺量子位 报道 | 公众号 QbitAI安卓乱象,所有人都是知道的。但你知道到底有多乱么?现在,我们这些普通用户,也能定量分析检测了。真相,可能比想象中还严重。来看...

祝贺玄姐,创业两个月,估值近亿,融资几千万,奈学教育,太牛逼了!!!...

玄姐,男,前58同城技术委员会主席,前转转首席架构师,我的10年好友。一月下旬,玄姐找到我,说,哥们我准备创业了。画外音:详见《最好的朋友创业了,我必须为他站台》。番外篇《为何大家都叫...

拿钱办事,其余免谈。30K 的阿里 P6 Java 也就这样了

本文作者:Frank 杨逍,阿里 P8 高级技术专家,面试总计超过 500 + 候选人。 裁员阴影下的互联网圈目前一片哀鸿遍野,大家还是要居安思危、有备无患。 若考虑跳槽,首推阿里。面试相对简单(面经多),Java 需<em>求</em>量大,放张截图随便感受下: 在 job.alibaba 搜索 Java,最后一页职位也足够新鲜 阿里牛逼!Java YES!(破音) 各位兄弟简历投起来(or 找我内推~是的...

你看,公司状告员工不加班,居然还告赢了

loonggg读完需要3分钟速读仅需 1 分钟今天跟大家聊一聊加班文化这个话题。今天微博热搜榜上有一个话题就是:#员工拒绝加班被判赔公司 1.8 万# 。具体什么情况呢?扬州某公司员工王...

在北京,我遇上每天必须挣1000元的出租车司机!

在北漂的那段时间几乎天天加班,只要加班必然晚上回家会坐出租车,北漂7年大概遇上了近1000个出租车司机。大家都知道,在北京住的的地方和公司一般距离都很远,就算是晚上10点或者11点的时候...

【相亲】95年高颜值妹子,喜欢上进的男生

颜值有点高,条件有点好

你怎么看欧阳娜娜空降阿里p8?

前段时间 欧阳娜娜空降阿里P8被骂上热搜 有网友调侃道: 名牌大学毕业的研究生 要在阿里没日没夜、加班加点、 全年无休奋斗5年,才可能有机会 和<em>2</em>0岁的欧阳娜娜一起喝下午茶…… 本来嘛,大厂✖明星的营销无可厚非 那是什么让撸代码N年的程序员愤愤不平呢? 还不是因为升到P8真的太难了! 这是很多阿里人甚至互联网人遥不可及的梦想! 阿里P8到底有多牛? 根据知乎大V@半佛仙人透露的情况: 阿里P8基本上要<em>求</em>研究生 5 年以上经验,本科 7 年以上经验; P8 一般去小公司就是各种 O,一般公司(非国企、.

优秀的程序员真的不写注释吗?

我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。” 动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码写得这么优雅,你难道看不懂吗?注释是多余的!” 我必须得承认,每个程序员都应该有一颗追<em>求</em>“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我

面试了个30岁的程序员,让我莫名其妙的开始慌了

面试官:看你是85年的 我:嗯,35了 面试官:那应该经验很丰富了,那我们来聊聊spring吧 我:好,这块我用了10几年了,你随便问吧 面试官:Spring中的事件用过么? 我:用过 面试官:可以介绍一下为什么需要使用事件么? 我:使用事件的模式可以对系统进行解耦,事件源发布一个事件,事件监听器可以消费这个事件,而事件源不用关注发布的事件有哪些监听器,这可以可以对系统进行解耦 面试官:Spring事件的实现有几种方式? 我:整体来说<em>2</em>种方式,第一种是通过接口的方式,第二种是在方法上使用注

不可不知的 7 个 JDK 命令

这篇文章主要来介绍下 JDK 内置的命令,话不多说,让我们开始吧!javap使用 javap 可以查看 Java 字节码反编译的源文件,javap 的命令格式如下:javap下面来演示下...

SMT32 例程,串口的操作下载

实例讲解SMT32系列芯片的UART的两种使用方式,中断和查询两种方式下的数据接收和发送。 相关下载链接:[url=//download.csdn.net/download/gansulgd/2660221?utm_source=bbsseo]//download.csdn.net/download/gansulgd/2660221?utm_source=bbsseo[/url]

fb303,使用Java连接Scribe必备的JAR包下载

包含编译好的FacebookService, fb_status, FacebookBase, LogEntry, ResultCode, scribe类。 按照完thrift和scribe后,就不用自己生成了。 相关下载链接:[url=//download.csdn.net/download/baidongli/3759664?utm_source=bbsseo]//download.csdn.net/download/baidongli/3759664?utm_source=bbsseo[/url]

8245 配置 122下载

HG8245 光猫 配置文件 SPC122版 相关下载链接:[url=//download.csdn.net/download/szq007676/8559737?utm_source=bbsseo]//download.csdn.net/download/szq007676/8559737?utm_source=bbsseo[/url]

我们是很有底线的