Camera笔记
来源:互联网 发布:python视频教程 知乎 编辑:程序博客网 时间:2024/06/07 00:15
/**
*taj_star
*/
目录
1.camera 和 video 到切换是咋样的?
2.闪光灯的模式切换。
3.camera 在何处 open
4.实现获取 拍摄完后的图片 和录像完之后的图片(也就是放在图片库中的图片)
5.前后摄像头的设置
6.Camera 是怎么编译的?
1.camera 和 video 到切换是咋样的?
ModePicker.changeToSelectedMode ->Camera.onModeChanged->Camera.switchToOtherMode->MenuHelper.gotoMode
2.闪光灯的模式切换。
mParameters = mCameraDevice.getParameters();
if(mode == PreviewSetting.MODE_LIGHT_AUTO){
mParameters.setFlashMode(Parameters.FLASH_MODE_AUTO);
}else if(mode == PreviewSetting.MODE_LIGHT_ON){
mParameters.setFlashMode(Parameters.FLASH_MODE_ON);
}else if(mode == PreviewSetting.MODE_LIGHT_OFF){
mParameters.setFlashMode(Parameters.FLASH_MODE_OFF);
}
mCameraDevice.setParameters(mParameters);
3.camera 在何处 open
在camera.java 的onCreate中
getPreferredCameraId //获得cameraid
mCameraOpenThread.start();//用进程去开。
4.实现获取 拍摄完后的图片 和录像完之后的图片(也就是放在图片库中的图片)
camera:
在类JpegPictureCallback 中onPictureTaken 添加代码如下:
//为什么放在onPictureTaken中呢,是因为这个函数中有jpegData(类型final byte[] data)这个参数,下面的转换参照Thumbnail.java 中的createThumbnail写的
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
Bitmap bitmap = BitmapFactory.decodeByteArray(jpegData, 0, jpegData.length, options);
//旋转90度,因为拍下来是图片是横着的//这个待定
Matrix matrix = new Matrix();
matrix.setRotate(90);
bitmap = Bitmap.createBitmap(bitmap, 0, 0,bitmap.getWidth(), bitmap.getHeight(), matrix, true);
mLastPicture.setImageBitmap(bitmap);
mLastPicture.setScaleType(ScaleType.FIT_START);//从上面开始
mLastPicture.setVisibility(View.VISIBLE);
video:
在onStopVideoRecording 中stopVideoRecording函数 (因为mCurrentVideoFilename在这个函数赋值的)下面添加:
// 这个转换是参照Thumbnail.createVideoThumbnail 写的
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(mCurrentVideoFilename);
bitmap = retriever.getFrameAtTime(-1);
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file.
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while cleaning up.
}
}
if (bitmap == null)
return false;
mLastVideo = (ImageView)findViewById(R.id.ic_last_pic_vid);
mLastVideo.setImageBitmap(bitmap);
mLastVideo.setScaleType(ScaleType.FIT_START);
5.前后摄像头的设置
public boolean onCameraChanged(int mode) {
// TODO Auto-generated method stub
if (mCameraDevice != null) {
mCameraDevice.stopPreview();
mCameraDevice.release();
mCameraDevice = null;
}
//face font
/* if(mode == 0){
mCameraId = mFrontCameraId;
}else if(mode == 1){
mCameraId = mBackCameraId;
}*/
mCameraDevice = android.hardware.Camera.open(mCameraId);
try {
mCameraDevice.setPreviewDisplay(mSurfaceHolder);
} catch (IOException exception) {
mCameraDevice.release();
mCameraDevice = null;
}
mParameters = mCameraDevice.getParameters();
//requestLayout();
// parameters.setPreviewSize(640, 480);
mCameraDevice.setParameters(mParameters);
mCameraDevice.startPreview();
}
6.Camera 是怎么编译的?
是在gallery2 中Android.mk 中会编译Gallery2 和Camera
- Camera笔记
- Camera笔记
- camera 笔记
- msm7627 camera 搜索笔记
- android camera笔记 杂
- v4l2,camera笔记
- Camera的使用(笔记)
- Camera使用二(笔记)
- android camera学习笔记
- v4l2,camera笔记
- android camera开发笔记
- v4l2,camera笔记
- v4l2,camera笔记
- v4l2,camera笔记
- 第十一章 Camera笔记
- qualcomm camera 学习笔记
- qualcomm camera 学习笔记
- [笔记分享] [Camera] MTK Camera基础知识一
- hive 数据倾斜总结
- Win32动态链接库和MFC 动态链接库
- Android中merge和include标签的使用
- weka连接mysql数据库
- c++学习之模板
- Camera笔记
- hibernate配置文件hibernate.cfg.xml的详细解释
- html是不是一种编程语言
- JS弹出层 带遮罩与不带遮罩easyDialog v2.0
- MySQL数据库运维的五大指标
- struts2 截取字符串
- 在ubuntu12.04添加文件对比工具
- 两程序员不同境遇:少抱怨 多解决问题
- C mysql