android摄像头预览
⑴ android 相机开发,如何实现在将摄像头预览
java术语,意为Java媒体框架(JMF)。该核心框架支持不同媒体(如:音频输出和视频输出)间的时钟同步。它是一个标准的扩展框架,允许用户制作纯音频流和视频流。 JMF实际上是Java的一个类包。JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能。这些功能包括:媒体捕获、压缩、流转、回放,以及对各种主要媒体形式和编码的支 持,如M-JPEG、H.263、MP3、RTP/RTSP (实时传送协议和实时流转协议)、Macromedias Flash、IBM的HotMedia和Beatniks的Rich Media Format (RMF)等。JMF 2.1.1还支持广受欢迎的媒体类型,如Quicktime、Microsofts AVI和MPEG-1等。此外,JMF 2.1.1软件中包括了一个开放的媒体架构,可使开发人员灵活采用各种媒体回放、捕获组件,或采用他们自己的定制的内插组件。 JMF教程.rar大小:68.82M所需财富值:5 已经过网络安全检测,放心下载 点击下载下载量:12
⑵ Android 如何实现摄像头不进行预览显示,只获取视频流数据
好像是强制要求有预览的,安全问题,比如偷窥什么的所以不允许无预览画面的使用摄像头
⑶ android camera2 用surfaceview输出预览图像画面拉长
项目当中遇到调整摄像头位置需要全屏显示摄像头预览界面,过程中发现预览界面存在无法显示全,画面被拉伸的问题。surfaceview的宽高比可能与camera设置的宽高比不一致 ,经测试发现设置Camera 预览宽高可解决此问题(注意这里设置屏幕物理宽高不起作用,必须设置屏幕分辨率)
////通过Resources获取(无效)
// DisplayMetrics dm = getResources().getDisplayMetrics();
// heigth = dm.heightPixels;
// width = dm.widthPixels;
//获取屏幕的默认分辨率 设置预览界面长宽解决预览界面变形显示不全问题(有效)
Display display = getWindowManager().getDefaultDisplay();
int height = display.getWidth();
int width = display.getHeight();
Camera.Size preSize = CameraUtil.getCloselyPreSize( true , width, height, parameters.getSupportedPreviewSizes());
parameters.setPreviewSize(preSize.width, preSize.height);
Log.e(TAG + "摄像头尺寸前置" , "width" + preSize.width + "------" + "height" + preSize.height);
camera2.setParameters(parameters);
// 启动摄像头预览
camera2.startPreview();
System.out.println( "camera.startpreview" );
⑷ android camera预览关闭后还可以再次打开吗
activity pause过后恢复我们以前是这样做的,Camera对象需要重新生成
在onPause的时候,调用如下方法(已经删除其他跟我们项目相关的逻辑代码)
/**
* 停止显示相机画面</br>
* 若设置了录制器,会自动关闭录制器
*/
public void stopPreview() {
synchronized (mCameraLock) {
if (mCamera != null) {
mCamera.setPreviewCallback(null);
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
}
}
然后在onResume时,重新获得Camera对象(通过Camera.open()),
再重新设置previewCallback,SurfaceHolder,Parameters等,最后startPreview
这里可以提醒一下LZ,
打开摄像头的时间可能会很长,勿在主线程直接打开,否则会有概率出ANR
摄像头根据设备的不同可能在打开时经常会抛各种异常,记得try,catch
⑸ 为什么android摄像头预览出来是乱的
打开摄像头预览(不包含拍照功能),你可以按照下面办法试试。
整个预览的流程是建立一个surface,获取surface得控制器surfaceholder,设立surface的窗口previewdisplay,最后开始预览startpreview。当然最后还要添加相机相关的权限。
packagecom.example.trysurface;
importjava.io.IOException;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.Surface;
importandroid.view.SurfaceHolder;
importandroid.view.View;
importandroid.view.SurfaceHolder.Callback;
importandroid.view.SurfaceView;
importandroid.widget.Button;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.hardware.Camera;
{
SurfaceViewmSurface;
SurfaceHoldermSurfaceHolder;
@Override
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSurface=(SurfaceView)findViewById(R.id.camera);
mSurfaceHolder=mSurface.getHolder(); //get the camera holder
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mSurfaceHolder.addCallback(newCallback(){
@Override
publicvoidsurfaceChanged(SurfaceHolder arg0,intarg1,intarg2,
intarg3) {
//TODOAuto-generated method stub
}
@Override
publicvoidsurfaceCreated(SurfaceHolder arg0) {
//TODOAuto-generated method stub
mCamera=Camera.open(); //open camera
try{
mCamera.setPreviewDisplay(mSurfaceHolder); //set the preview
}catch(IOException e) {
//TODOAuto-generated catch block
e.printStackTrace();
}
mCamera.startPreview(); //state preview
}
@Override
publicvoidsurfaceDestroyed(SurfaceHolder arg0) {
//TODOAuto-generated method stub
}
}
);
}
}
布局
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView
android:id="@+id/camera"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
</SurfaceView>
</LinearLayout>
权限
<uses-permissionandroid:name="android.permission.CAMERA"/>
<uses-featureandroid:name="android.hardware.camera"/>
<uses-featureandroid:name="android.hardware.camera.autofocus"/>
⑹ Android开发怎么调用摄像头功能
1、现在Android智能手机的像素都会提供照相的功能,大部分的手机的摄像头的像素都在1000万以上的像素,有的甚至会更高。它们大多都会支持光学变焦、曝光以及快门等等。下面的程序Demo实例示范了使用Camera v2来进行拍照,当用户按下拍照键时,该应用会自动对焦,当对焦成功时拍下照片。layout/activity_main.xml界面布局代码如下:
3、接来了的MainActivity.java程序将会使用CameraManager来打开CameraDevice,并通过CameraDevice创建CameraCaptureSession,然后即可通过CameraCaptureSession进行预览或拍照了。
⑺ android 软件开发 前后置摄像头可以同时打开预览吗
//切换镜头
public void switchCamera(SurfaceView surfaceView, boolean isFrontCamera) {
if (mCamera != null) {
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
int cameraId = isFrontCamera ? CAMERA_FACING_FRONT : CAMERA_FACING_BACK;// CAMERA_FACING_FRONT为前置摄像头
// 在2.3版本中应该这么写
// int numCamera = Camera.getNumberOfCameras();
// CameraInfo info = new CameraInfo();
// for(int i = 0;i< numCamera;i++){
// Camera.getCameraInfo(i, info);
// if(info.facing == CameraInfo.CAMERA_FACING_BACK){
// cameraId = i;
// }
// }
mCamera = open(cameraId);
Parameters parameters = mCamera.getParameters();
Log.e("tag", "parameters.getPictureSize()"
+ parameters.getPictureSize().width);
setPictureSize(parameters);
parameters.setPictureFormat(PixelFormat.JPEG);
mCamera.setParameters(parameters);
Log.e("tag", "2 parameters.getPictureSize()"
+ parameters.getPictureSize().width);
setDisplayOrientation(mCamera);
try {
mCamera.setPreviewDisplay(mHolder);
mCamera.startPreview();
} catch (IOException e) {
e.printStackTrace();
}
}
⑻ android framework层如何调用摄像头预览画面,想做一个自定义锁屏页面,进行人脸识别解锁。
在设置中就有
⑼ android 开发 如何打开摄像头并在屏幕上预览,同时程序在后台对当前的屏幕内容进行截图并上传到指定服务
不知你用的什么型号MOTO 在连上电脑时通知栏里会有一个USB 图标点开会有选项,选择摄像头就可以使手机变为网络摄像头了,然后可以在我的电脑里找到图标可以直接在电脑上预览
⑽ Android摄像头非全屏预览,怎么保证图像不变形
用surfaceview可以设置预览窗口的大小和位置
然后用setpreviewsize设置摄像头图像的大小,大小和surfaceview一致就可以