android 多媒体和相机详解八
获取图像
一旦你建立了预览类和显示预览类的viewlayout,你就已准备好开始使用你的应用获取图像了.在你的应用代码中,你还必须要建立起那些用于控制的控件们的侦听器,来响应用户的动作.
要取得图像,使用Camera.takePicture()方法.此方法有三个参数.要获得JPEG图像,你必须实现一个Camera.PictureCallback接口来接收图像数据然后写入文件中.下面的代码演示了最基本的Camera.PictureCallback接口的实现.
private boolean isRecording = false;// 向录像按钮增加监听器Button captureButton = (Button) findViewById(id.button_capture);captureButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if (isRecording) { // 停止录像并释放 MediaRecorder mMediaRecorder.stop(); // stop the recording releaseMediaRecorder(); // release the MediaRecorder object mCamera.lock(); // take camera access back from MediaRecorder // inform the user that recording has stopped setCaptureButtonText("Capture"); isRecording = false; } else { // 初始化视频相机 if (prepareVideoRecorder()) { // 相几解锁,MediaRecorder 已准备好.现在可以开始录像了 mMediaRecorder.start(); // inform the user that recording has started setCaptureButtonText("Stop"); isRecording = true; } else { // 准备过程失败,释放相机 releaseMediaRecorder(); // inform user } } } });
注:在上例中,prepareVideoRecorder()方法引用自例子"配置MediaRecorder".此方法解锁相机配置并准备MediaRecorder实例.