2013-12-16 144 views
2

嗨我正在開發一個Android應用程序嘗試自定義相機和視頻功能。問題是當我嘗試返回Cameraview中的按鈕時,不顯示預覽。它只顯示黑屏。相機預覽顯示黑屏

的onClick在Videoview是如下

 try 
     { 
      Thread.sleep(1000); 
      recorder.stop(); 
      recorder.reset(); 
      recorder.release(); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 

     camera.release(); 
     startActivity(new Intent(Video.this,Camera.class)); 
     finish(); 

照相機是Cameraview的空onSurfaceChanged從Videoview返回。

@Override 
public void surfaceChanged(SurfaceHolder sHolder, int format, int width, int height) 
{ 
    Log.e("surfaceChanged","camera"); 
    if(camera != null) 
    { 
     initPreview(width, height); 
     camera.startPreview(); 
    } 


    else if(camera == null) 
    { 
     try 
     { 
      Camera camera = Camera.open(currentCameraId); 

      if (holder.getSurface() == null) 
      { 
       return; 
      } 

      try 
      { 
        //camera.stopPreview(); 

        //camera.reconnect(); 
        //camera.lock(); 
        //camera.unlock(); 
       camera.setPreviewCallback(this); 
       camera.setPreviewDisplay(holder); 

      } 
      catch (Exception e) 
      { 
      } 

      initPreview(width, height); 
      camera.startPreview(); 

     } 

     catch (Exception e) 
     { 
      releaseCamera(); 
     } 

不知道我哪裏出錯了。我無法打開相機或重新連接它。請幫忙。

謝謝!

回答

1

試試這個:

1)設置callBack爲SurfaceView。

public CameraView(Context ctx, AttributeSet attrSet) { 
     super(ctx, attrSet); 
     getHolder().addCallback(cameraPreviewCallback); 
     getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
    } 

Camera.PreviewCallback cameraPreviewCallback = new Camera.PreviewCallback() { 
     @Override 
     public void onPreviewFrame(byte[] data, Camera camera) { 

     } 
    }; 

2)啓動相機

camera = Camera.open(); 
camera.setPreviewCallback(cameraPreviewCallback); 
camera.setPreviewDisplay(getHolder()); 
camera.startPreview(); 
+0

支架= surface.getHolder(); \t \t holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);我正在使用這個創建。你能解釋我在哪裏需要使用1)和2) – sanjana

+0

https://gist.github.com/andriyGrenka/c3ecb458d1fe7842419d –

+0

@AndrewDmytrenko死鏈接...請更新鏈接 – chhameed