마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

카메라 90도 회전 문제

0 추천

 
    MediaPlayer player;
    MediaRecorder recorder;
    
    // 카메라 상태를 저장하고 있는 객체
    Camera camera;
    
   // CameraInfo cameraInfo = new CameraInfo();

    SurfaceView surfaceView;
    SurfaceHolder holder = null;
    
   
    @SuppressWarnings("deprecation")
 @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        
        
        if(D) Log.e(TAG, "+++ ON CREATE +++");

        // Set up the window layout
        setContentView(R.layout.main);

        // Get local Bluetooth adapter
        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        
       // this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        
    
        
        
        // 외장메모리가 있는지 확인한다.
        // Environment.getExternalStorageState() 를 통해서 현재 외장메모리를 상태를 알수있다.
        String state = Environment.getExternalStorageState();
        // Environment.MEDIA_MOUNTED 외장메모리가 마운트 flog
        if (!state.equals(Environment.MEDIA_MOUNTED)) {
         Toast.makeText(getApplicationContext(), "외장 메모리가 마운트 되지않았습니다.", Toast.LENGTH_LONG).show();
        } else {
         EXTERNAL_STORAGE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath();
        }
        
        
        // SurfaceView 클래스 객체를 이용해서 카메라에 받은것을 녹화하고 재생하는데 쓰일것이다.
        surfaceView = (SurfaceView)findViewById(R.id.surface);
        
        // SurfaceView 클래스를 컨트롤하기위한 SurfaceHolder 생성
        holder = surfaceView.getHolder();
        // 버퍼없음
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        
        
        
     // If the adapter is null, then Bluetooth is not supported
        if (mBluetoothAdapter == null) {
            Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_LONG).show();
            finish();
            return;
        }
        
        findViewById(R.id.secure_connect_scan).setOnClickListener(clickListener);
        findViewById(R.id.secure_connect_cancel).setOnClickListener(clickListener);
        findViewById(R.id.recoder).setOnClickListener(clickListener);
    }
    
    
    public void RecodeStart(){
     
        //Set preview with a 90° ortientation
        //camera.setDisplayOrientation(90);
        //camera.unlock();
     
        
     try{
        if (recorder == null) {
            recorder = new MediaRecorder();
           // recorder.setOrientationHint(90);
              }
       
        
        
           // 오디오와영상 입력 형식 설정
           recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
           recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
           recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
            
           // 오디오와영상 인코더 설정
           recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
           recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);

           // 저장될 파일 지정
           filename = createFilename();
           recorder.setOutputFile(filename);

           // 녹화도중에 녹화화면을 뷰에다가 출력하게 해주는 설정
           
           
           
          recorder.setOrientationHint(90);
          
          //recorder.setPreviewDisplay((Surface) holder);
          recorder.setPreviewDisplay(holder.getSurface());
           
       
          //recorder.setOrientationHint(90);
           
           
           // 녹화 준비,시작 
   recorder.prepare();
   recorder.start();
   
     }catch(Exception ex){
      ex.printStackTrace();
      recorder.release();
      recorder = null;
     }
    }
    

recorder.setPreviewDisplay(holder.getSurface());

이부분에서 미리보기가 90도 회전되어 나와서 90 돌릴려고 recorder.setDispalyOrientation(90);하면 왜 빨간줄이 나올까요? 어떤식으로 써야되는건지 알려주세요 ㅜㅜ

익명사용자 님이 2014년 11월 21일 질문

1개의 답변

0 추천
익명사용자 님이 2014년 11월 23일 답변
...