コード例 #1
0
        public void onPreviewFrame(byte[] _data, Camera _camera) {
          if (NgnProxyVideoProducer.super.mValid) {
            mVideoFrame.put(_data);
            mProducer.push(mVideoFrame, mVideoFrame.capacity());
            mVideoFrame.rewind();

            if (NgnProxyVideoProducer.sAddCallbackBufferSupported) {
              NgnCameraProducer.addCallbackBuffer(_camera, _data);
            }
          }
        }
コード例 #2
0
  private void startCameraPreview(Camera camera) {
    if (camera != null && mProducer != null && mVideoFrame != null) {
      try {
        Log.d(TAG, String.format("setPreviewSize [%d x %d ]", mWidth, mHeight));
        Camera.Parameters parameters = camera.getParameters();
        parameters.setPreviewSize(mWidth, mHeight);
        camera.setParameters(parameters);
      } catch (Exception e) {
        Log.e(TAG, e.toString());
      }

      try {
        int terminalRotation = getTerminalRotation();
        Camera.Parameters parameters = camera.getParameters();
        if (terminalRotation == 0) {
          parameters.set("orientation", "landscape");
        } else {
          parameters.set("orientation", "portrait");
        }
        camera.setParameters(parameters);
      } catch (Exception e) {
        Log.e(TAG, e.toString());
      }

      // Camera Orientation
      int rotation = compensCamRotation(false);
      Log.d(TAG, String.format("setDisplayOrientation [%d] ", rotation));
      NgnCameraProducer.setDisplayOrientation(camera, rotation);

      // Callback Buffers
      if (NgnProxyVideoProducer.sAddCallbackBufferSupported) {
        for (int i = 0; i < NgnProxyVideoProducer.CALLABACK_BUFFERS_COUNT; i++) {
          NgnCameraProducer.addCallbackBuffer(camera, new byte[mVideoFrame.capacity()]);
        }
      }

      camera.startPreview();
    }
  }