文章标题
来源:互联网 发布:知乎 圣诞 编辑:程序博客网 时间:2024/06/09 18:30
这是我个人写的一些小技术`
public class CameraActivity extends AppCompatActivity {
private SurfaceView sv_camera_surfaceview;private Camera camera;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_camera); sv_camera_surfaceview = (SurfaceView) findViewById(R.id.sv_camera_surfaceview); sv_camera_surfaceview.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { //打开照相机 camera = Camera.open(); //给照相机设置参数 Camera.Parameters parameters= camera.getParameters(); //设置保存的格式 parameters.setPictureFormat(PixelFormat.JPEG); parameters.set("jpeg-quality",85); camera.setParameters(parameters); //将照相机捕捉的画面展示到SurfaceView try { camera.setPreviewDisplay(sv_camera_surfaceview.getHolder()); //开启预览 camera.startPreview(); } catch (IOException e) { e.printStackTrace(); } } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { //关闭 } });}public void takePhoto(View view){ //拍照 camera.takePicture(null, null, new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] bytes, Camera camera) { //将字节数组转成图片 //实例化输出流对象,将bytes写入即可 //压缩 //将字节数组转成图片 Bitmap bitmap=BitmapFactory.decodeByteArray(bytes,0,bytes.length); try { FileOutputStream fos=new FileOutputStream("/mnt/sdcard/DCIM/camera/G150825_"+System.currentTimeMillis()+".png"); bitmap.compress(Bitmap.CompressFormat.PNG,85,fos); camera.stopPreview(); camera.startPreview(); } catch (FileNotFoundException e) { e.printStackTrace(); } } });}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_media_recorder);
sv_media_recoder_surface = (SurfaceView) findViewById(R.id.sv_media_recoder_surface);
//实例化媒体录制器 mediaRecorder = new MediaRecorder();}public void start(View view){ mediaRecorder.reset(); //设置视频和音频的来源 mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置保存的格式 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); //设置编码格式 mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); mediaRecorder.setVideoFrameRate(3); //设置保存的路径 mediaRecorder.setOutputFile("mnt/sdcard/G150825_"+System.currentTimeMillis()+".mp4"); //将画面展示到SurfaceView mediaRecorder.setPreviewDisplay(sv_media_recoder_surface.getHolder().getSurface()); //准备 try { mediaRecorder.prepare(); mediaRecorder.start(); } catch (IOException e) { e.printStackTrace(); }}public void stop(View view){ mediaRecorder.stop();}
}
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 课程学习归纳总结(0223)
- 爬虫-漫画喵的100行逆袭
- Java 去除小数点后面多余的0
- 顺序表的有关操作
- 内存流 数据流 打印流的简单使用
- 文章标题
- LeetCode 33. Search in Rotated Sorted Array
- 51Nod-1548-欧姆诺姆和糖果
- 克鲁斯卡尔算法(最短路算法详解)
- Android-Camera(照相机)实例
- 一家反欺诈公司的面试经历——10.hashmap
- 欢迎使用CSDN-markdown编辑器
- Android直播知识回顾1-Re5服务器搭建
- 如何防止低级问题导致的质量事故