텍스쳐뷰가 4.0부터 추가가 됐습니다.

카메라 프리뷰를 표시할때 사용되던 서피스뷰를 대체하는 오브젝트로써 나온 클래스인데요.

좀더 뷰의 특성을 가지고 있어서 다루기가 편하다는 장점을 가지고 있다고 합니다.

현재 이것을 사용해서 카메라 프리뷰를 표시하는데는 성공하고 사진찍기도 수월하게 됩니다.


문제는 동영상 촬영인데요 미디어레코더 클래스를 사용해서 녹화를 하는데 자꾸 다운이 되네요..

TextureView 는 SurfaceTexture리스너가 있더라구요 미디어레코더에는 Surface객체를 셋팅 해줘야 하구요.

두개의 이름이 비슷한데 변환하는 방법이 없는거 같네요.


혹시 아신다면 정보 부탁드립니다.

밑의 코드는 기존 서피스뷰 사용시입니다. 이건 잘 구동 됩니다.

mediaRecorder = new MediaRecorder();

myCamera.unlock();

//4.0에서는 락/언락은 자동으로 해준다는데...

mediaRecorder.setCamera(myCamera);


mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);


mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 


mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); 

mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);



mediaRecorder.setVideoFrameRate(15); 

mediaRecorder.setVideoSize(1920, 1080);


File folder = Environment.getExternalStorageDirectory();

File file;


file = File.createTempFile("sample20110603", ".mp4", folder);//


mediaRecorder.setOutputFile(file.getAbsolutePath());


mediaRecorder.setPreviewDisplay(v_holder.getSurface());

//이부분이 텍스쳐뷰 사용시 못가져옴..안넣으면 에러가 나네요.


mediaRecorder.prepare();

mediaRecorder.start();