Example usage for android.view SurfaceHolder SURFACE_TYPE_PUSH_BUFFERS

List of usage examples for android.view SurfaceHolder SURFACE_TYPE_PUSH_BUFFERS

Introduction

In this page you can find the example usage for android.view SurfaceHolder SURFACE_TYPE_PUSH_BUFFERS.

Prototype

int SURFACE_TYPE_PUSH_BUFFERS

To view the source code for android.view SurfaceHolder SURFACE_TYPE_PUSH_BUFFERS.

Click Source Link

Usage

From source file:com.nekomeshi312.whiteboardcorrection.CameraViewFragment.java

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    if (MyDebug.DEBUG)
        Log.d(LOG_TAG, "onViewCreated");

    super.onViewCreated(view, savedInstanceState);
    mTextViewLineDetectErrorMsg = (TextView) mParentActivity.findViewById(R.id.line_detection_error_msg);
    mCameraSurfaceView = (CameraSurfaceView) mParentActivity.findViewById(R.id.camera_surface_view);
    SurfaceHolder holder = mCameraSurfaceView.getHolder();
    holder.addCallback(this);
    if (Build.VERSION.SDK_INT < 11) {
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }//from w w  w .ja va 2 s.com
    mCameraSurfaceView.setCameraPreview(this);
    mWhiteBoardView = (WhiteBoardAreaView) mParentActivity.findViewById(R.id.whiteboard_area_view);
    mWhiteBoardView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            // TODO Auto-generated method stub
            if (mBaseWidth == -1) {
                if (mCameraSetting.isCameraOpen()) {
                    fitChildSize2CamSize();
                }
            }
        }
    });
}

From source file:com.example.android.mediarecorder.MainActivity.java

private boolean preparePreview() {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
        try {//from   ww  w  . j av a2s  . c o  m
            CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
            String id = manager.getCameraIdList()[0];
            CameraCharacteristics characteristics = manager.getCameraCharacteristics(id);
            sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION);
        } catch (CameraAccessException e) {
            Log.e("ERROR", "Cannot access Camera2 API");
            e.printStackTrace();
        }
    }

    Log.i(TAG, "Preparing Camera Preview");
    // BEGIN_INCLUDE (configure_preview)
    //        mCamera = CameraHelper.getDefaultCameraInstance();

    // We need to make sure that our preview and recording video size are supported by the
    // camera. Query camera to find all the sizes and choose the optimal size given the
    // dimensions of our preview surface.
    Camera.Parameters parameters = mCamera.getParameters();
    List<Camera.Size> mSupportedPreviewSizes = parameters.getSupportedPreviewSizes();
    List<Camera.Size> mSupportedVideoSizes = parameters.getSupportedVideoSizes();
    Camera.Size optimalSize = CameraHelper.getOptimalVideoSize(mSupportedVideoSizes, mSupportedPreviewSizes,
            mPreview.getWidth(), mPreview.getHeight());

    // Use the same size for recording profile.
    CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
    profile.videoFrameWidth = optimalSize.width;
    profile.videoFrameHeight = optimalSize.height;

    // likewise for the camera object itself.
    parameters.setPreviewSize(profile.videoFrameWidth, profile.videoFrameHeight);
    mCamera.setParameters(parameters);
    try {
        // Requires API level 11+, For backward compatibility use {@link setPreviewDisplay}
        // with {@link SurfaceView}
        //                mCamera.setPreviewTexture(mPreview.getSurfaceTexture());

        mHolder = mPreview.getHolder();
        mHolder.addCallback(this);
        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        //            mHolder.setKeepScreenOn(true);

        setCameraDisplayOrientation(0);
        mCamera.setPreviewDisplay(mPreview.getHolder());
        mCamera.startPreview();
        Log.i(TAG, "Setting Preview Display");
    } catch (IOException e) {
        Log.e(TAG, "Surface texture is unavailable or unsuitable" + e.getMessage());
        return false;
    }
    // END_INCLUDE (configure_preview)
    return true;
}

From source file:com.gsma.rcs.ri.sharing.video.OutgoingVideoSharing.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Always on window
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

    // Set layout
    setContentView(R.layout.video_sharing_outgoing);

    // Set the contact selector
    mSpinner = (Spinner) findViewById(R.id.contact);
    ContactListAdapter adapter = ContactListAdapter.createRcsContactListAdapter(this);
    mSpinner.setAdapter(adapter);// ww w.  j  a va2s .c  om

    // Saved datas
    if (savedInstanceState == null) {
        mNbfCameras = getNumberOfCameras();
    } else {
        mSharingId = savedInstanceState.getString(SAVE_SHARING_ID);
        mNbfCameras = savedInstanceState.getInt(SAVE_NB_OF_CAMERAS);
        mVideoHeight = savedInstanceState.getInt(SAVE_VIDEO_HEIGHT);
        mVideoWidth = savedInstanceState.getInt(SAVE_VIDEO_WIDTH);
        mOpenedCameraId = CameraOptions.convert(savedInstanceState.getInt(SAVE_OPENED_CAMERA_ID));
        mContact = savedInstanceState.getParcelable(SAVE_REMOTE_CONTACT);
        mStarted = savedInstanceState.getBoolean(SAVE_STARTED);
    }
    if (LogUtils.isActive) {
        Log.d(LOGTAG, "Sharing ID " + mSharingId + " Nb of cameras=" + mNbfCameras + " active camera="
                + mOpenedCameraId);
    }
    if (LogUtils.isActive) {
        Log.d(LOGTAG, "Resolution: " + mVideoWidth + "x" + mVideoHeight);
    }

    // Set button callback
    mInviteBtn = (Button) findViewById(R.id.invite_btn);
    mInviteBtn.setOnClickListener(btnInviteListener);
    mDialBtn = (Button) findViewById(R.id.dial_btn);
    mDialBtn.setOnClickListener(btnDialListener);
    mSwitchCamBtn = (Button) findViewById(R.id.switch_cam_btn);

    // Disable button if no contact available
    if (adapter == null || adapter.getCount() == 0) {
        mDialBtn.setEnabled(false);
        mInviteBtn.setEnabled(false);
    }

    // Get camera info
    if (mNbfCameras > 1) {
        boolean backAvailable = checkCameraSize(CameraOptions.BACK);
        boolean frontAvailable = checkCameraSize(CameraOptions.FRONT);
        if (frontAvailable && backAvailable) {
            mSwitchCamBtn.setOnClickListener(btnSwitchCamListener);
        } else if (frontAvailable) {
            mOpenedCameraId = CameraOptions.FRONT;
            mSwitchCamBtn.setVisibility(View.INVISIBLE);
        } else if (backAvailable) {
            mOpenedCameraId = CameraOptions.BACK;
            mSwitchCamBtn.setVisibility(View.INVISIBLE);
        } else {
            if (LogUtils.isActive) {
                Log.d(LOGTAG, "No camera available for encoding");
            }
        }
    } else {
        if (checkCameraSize(CameraOptions.FRONT)) {
            mSwitchCamBtn.setVisibility(View.INVISIBLE);
        } else {
            if (LogUtils.isActive) {
                Log.d(LOGTAG, "No camera available for encoding");
            }
        }
    }

    // Create the live video view
    mVideoView = (VideoSurfaceView) findViewById(R.id.video_preview);
    mVideoView.setAspectRatio(mVideoWidth, mVideoHeight);
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        mVideoView.setAspectRatio(mVideoWidth, mVideoHeight);

    } else {
        mVideoView.setAspectRatio(mVideoHeight, mVideoWidth);
    }

    mSurface = mVideoView.getHolder();
    mSurface.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    mSurface.setKeepScreenOn(true);
    mSurface.addCallback(this);

    // Check if session in progress
    if (mSharingId != null) {
        // Sharing in progress
        mDialBtn.setVisibility(View.GONE);
        mInviteBtn.setVisibility(View.GONE);
        mSpinner.setVisibility(View.GONE);
        mSwitchCamBtn.setEnabled((mNbfCameras > 1));
        handler.post(continueOutgoingSessionRunnable);
        displayRemoteContact();
    } else {
        // Sharing not yet initiated
        mDialBtn.setVisibility(View.VISIBLE);
        mInviteBtn.setVisibility(View.VISIBLE);
        mSwitchCamBtn.setEnabled(false);

        boolean canInitiate = true;
        if (adapter == null || adapter.getCount() == 0) {
            canInitiate = false;
        }
        mDialBtn.setEnabled(canInitiate);
        mInviteBtn.setEnabled(canInitiate);
    }

    // Register to API connection manager
    if (!isServiceConnected(RcsServiceName.VIDEO_SHARING)) {
        showMessageThenExit(R.string.label_service_not_available);
        return;
    }
    startMonitorServices(RcsServiceName.VIDEO_SHARING);

    // Add service listener
    try {
        VideoSharingService vshService = getVideoSharingApi();
        if (mSharingId != null) {
            // Sharing is in progress: get sharing session
            mVideoSharing = vshService.getVideoSharing(mSharingId);
            if (mStarted) {
                displayVideoFormat();
            }
        }
        vshService.addEventListener(vshListener);
        if (LogUtils.isActive) {
            Log.d(LOGTAG, "onCreate video sharing");
        }
    } catch (RcsServiceException e) {
        showExceptionThenExit(e);
    }
}

From source file:com.TaxiDriver.jy.CameraPreview.java

Preview(Context context) {
    super(context);

    mSurfaceView = new SurfaceView(context);
    snap = new Button(context);
    addView(mSurfaceView);/* w  w  w .j  av  a2  s .c  om*/

    // Install a SurfaceHolder.Callback so we get notified when the
    // underlying surface is created and destroyed.
    mHolder = mSurfaceView.getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

From source file:com.xgf.inspection.qrcode.google.zxing.client.CaptureActivity.java

@Override
protected void onResume() {
    super.onResume();

    // CameraManager must be initialized here, not in onCreate(). This is
    // necessary because we don't
    // want to open the camera driver and measure the screen size if we're
    // going to show the help on
    // first launch. That led to bugs where the scanning rectangle was the
    // wrong size and partially
    // off screen.
    cameraManager = new CameraManager(getApplication());

    viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view);
    viewfinderView.setCameraManager(cameraManager);

    resultView = findViewById(R.id.result_view);
    statusView = (TextView) findViewById(R.id.status_view);

    handler = null;/* w ww  .  j  a v  a  2 s.  com*/
    lastResult = null;

    resetStatusView();

    SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
    SurfaceHolder surfaceHolder = surfaceView.getHolder();
    if (hasSurface) {
        // The activity was paused but not stopped, so the surface still
        // exists. Therefore
        // surfaceCreated() won't be called, so init the camera here.
        initCamera(surfaceHolder);
    } else {
        // Install the callback and wait for surfaceCreated() to init the
        // camera.
        surfaceHolder.addCallback(this);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }

    beepManager.updatePrefs();

    inactivityTimer.onResume();

    Intent intent = getIntent();

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    copyToClipboard = prefs.getBoolean(PreferencesActivity.KEY_COPY_TO_CLIPBOARD, true)
            && (intent == null || intent.getBooleanExtra(Intents.Scan.SAVE_HISTORY, true));

    source = IntentSource.NONE;
    decodeFormats = null;
    characterSet = null;

    if (intent != null) {

        String action = intent.getAction();
        String dataString = intent.getDataString();

        if (Intents.Scan.ACTION.equals(action)) {

            // Scan the formats the intent requested, and return the result
            // to the calling activity.
            source = IntentSource.NATIVE_APP_INTENT;
            decodeFormats = DecodeFormatManager.parseDecodeFormats(intent);

            if (intent.hasExtra(Intents.Scan.WIDTH) && intent.hasExtra(Intents.Scan.HEIGHT)) {
                int width = intent.getIntExtra(Intents.Scan.WIDTH, 0);
                int height = intent.getIntExtra(Intents.Scan.HEIGHT, 0);
                if (width > 0 && height > 0) {
                    cameraManager.setManualFramingRect(width, height);
                }
            }

            String customPromptMessage = intent.getStringExtra(Intents.Scan.PROMPT_MESSAGE);
            if (customPromptMessage != null) {
                statusView.setText(customPromptMessage);
            }

        } else if (dataString != null && dataString.contains(PRODUCT_SEARCH_URL_PREFIX)
                && dataString.contains(PRODUCT_SEARCH_URL_SUFFIX)) {

            // Scan only products and send the result to mobile Product
            // Search.
            source = IntentSource.PRODUCT_SEARCH_LINK;
            sourceUrl = dataString;
            decodeFormats = DecodeFormatManager.PRODUCT_FORMATS;

        } else if (isZXingURL(dataString)) {

            // Scan formats requested in query string (all formats if none
            // specified).
            // If a return URL is specified, send the results there.
            // Otherwise, handle it ourselves.
            source = IntentSource.ZXING_LINK;
            sourceUrl = dataString;
            Uri inputUri = Uri.parse(sourceUrl);
            returnUrlTemplate = inputUri.getQueryParameter(RETURN_URL_PARAM);
            returnRaw = inputUri.getQueryParameter(RAW_PARAM) != null;
            decodeFormats = DecodeFormatManager.parseDecodeFormats(inputUri);

        }

        characterSet = intent.getStringExtra(Intents.Scan.CHARACTER_SET);

    }
}

From source file:com.cellbots.logger.LoggerActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    application = (LoggerApplication) getApplication();

    // Keep the screen on to make sure the phone stays awake.
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    mIsRecording = false;/*from   w  ww  .ja  v  a2 s  .  co m*/

    useZip = getIntent().getBooleanExtra(EXTRA_USE_ZIP, true);

    final int mode = getIntent().getIntExtra(EXTRA_MODE, MODE_VIDEO_FRONT);

    if ((mode == MODE_VIDEO_FRONT) || (mode == MODE_VIDEO_BACK)) {
        if (mode == MODE_VIDEO_FRONT) {
            setContentView(R.layout.video_front_mode);
        } else {
            setContentView(R.layout.video_back_mode);
        }
        mCamcorderView = (AbstractCamcorderPreview) findViewById(R.id.surface);
        final SurfaceHolder previewHolder = mCamcorderView.getHolder();
        previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    } else {
        mDelay = getIntent().getIntExtra(EXTRA_PICTURE_DELAY, 30) * 1000;
        if (mDelay < 0) {
            mDelay = 0;
        }
        setContentView(R.layout.pictures_mode);
        mCameraView = (CameraPreview) findViewById(R.id.surface);
    }

    // Setup the initial available space
    mStatFs = new StatFs(Environment.getExternalStorageDirectory().toString());
    float percentage = (float) (mStatFs.getBlockCount() - mStatFs.getAvailableBlocks())
            / (float) mStatFs.getBlockCount();
    mFreeSpacePct = (int) (percentage * 100);
    mStorageBarImageView = (BarImageView) findViewById(R.id.storage_barImageView);
    mStorageBarImageView.setPercentage(percentage);
    mStorageTextView = (TextView) findViewById(R.id.storage_text);
    mStorageSpacerTextView = (TextView) findViewById(R.id.storage_text_spacer);
    mStorageTextView.setText(mFreeSpacePct + "%");
    mStorageSpacerTextView.setPadding(mStorageSpacerTextView.getPaddingLeft(),
            (int) ((1 - percentage) * UI_BAR_MAX_TOP_PADDING), mStorageSpacerTextView.getPaddingRight(),
            mStorageSpacerTextView.getPaddingBottom());
    mFlashingRecGroup = (LinearLayout) findViewById(R.id.flashingRecGroup);
    mRecTimeTextView = (TextView) findViewById(R.id.recTime);
    mGpsLocationView = (TextView) findViewById(R.id.gpsLocation);
    mPictureCountView = (TextView) findViewById(R.id.pictureCount);

    mDataDrawer = (SlidingDrawer) findViewById(R.id.dataDrawer);
    mDiagnosticsDrawer = (SlidingDrawer) findViewById(R.id.diagnosticsDrawer);

    final ImageButton recordButton = (ImageButton) findViewById(R.id.button_record);
    recordButton.setOnClickListener(new View.OnClickListener() {
        // @Override
        @Override
        public void onClick(View v) {
            synchronized (mIsRecording) {
                if ((mode == MODE_VIDEO_FRONT) || (mode == MODE_VIDEO_BACK)) {
                    if (!mIsRecording) {
                        try {
                            mIsRecording = true;
                            recordButton.setImageResource(R.drawable.rec_button_pressed);
                            // initializes recording
                            mCamcorderView.initializeRecording();
                            // starts recording
                            mCamcorderView.startRecording();
                            startRecTime = System.currentTimeMillis();
                            new Thread(updateRecTimeDisplay).start();
                            if (mRemoteControl != null)
                                mRemoteControl.broadcastMessage("*** Recording Started ***\n");
                        } catch (Exception e) {
                            Log.e("ls", "Recording has failed...", e);
                            Toast.makeText(getApplicationContext(),
                                    "Camera hardware error. Please restart the application.", Toast.LENGTH_LONG)
                                    .show();
                            finish();
                            return;
                        }
                    } else {
                        cleanup();
                    }
                } else {
                    if (!mIsRecording) {
                        try {
                            mIsRecording = true;
                            recordButton.setImageResource(R.drawable.rec_button_pressed);
                            mCameraView.takePictures(mDelay);
                            new Thread(updateRecTimeDisplay).start();
                        } catch (Exception e) {
                            Log.e("ls", "Taking pictures has failed...", e);
                            Toast.makeText(getApplicationContext(),
                                    "Taking pictures is not possible at the moment: " + e.toString(),
                                    Toast.LENGTH_SHORT).show();
                        }
                    } else {
                        cleanup();
                    }
                }
            }
        }
    });

    final ImageButton dataButton = (ImageButton) findViewById(R.id.button_data);
    dataButton.setOnClickListener(new View.OnClickListener() {
        // @Override
        @Override
        public void onClick(View v) {
            if (mDataDrawer.isOpened()) {
                dataButton.setImageResource(R.drawable.data_button_up);
                mDataDrawer.animateClose();
            } else {
                dataButton.setImageResource(R.drawable.data_button_pressed);
                mDataDrawer.animateOpen();
            }
        }
    });

    final ImageButton diagnosticsButton = (ImageButton) findViewById(R.id.button_diagnostics);
    diagnosticsButton.setOnClickListener(new View.OnClickListener() {
        // @Override
        @Override
        public void onClick(View v) {
            if (mDiagnosticsDrawer.isOpened()) {
                diagnosticsButton.setImageResource(R.drawable.diagnostics_button_up);
                mDiagnosticsDrawer.animateClose();
            } else {
                diagnosticsButton.setImageResource(R.drawable.diagnostics_button_pressed);
                mDiagnosticsDrawer.animateOpen();
            }
        }
    });

    // setupSensors();
    initSensorUi();
}

From source file:com.longle1.facedetection.MainActivity.java

CameraPreview(Context context, Camera.PreviewCallback previewCallback) {
    super(context);
    this.previewCallback = previewCallback;

    // Install a SurfaceHolder.Callback so we get notified when the
    // underlying surface is created and destroyed.
    mHolder = getHolder();/*w w w  .j ava2s .c  om*/
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

From source file:com.youku.player.base.YoukuBasePlayerActivity.java

@SuppressWarnings("deprecation")
private void initPlayAndSurface() {
    surfaceView = mYoukuPlayerView.surfaceView;
    mYoukuPlayerView.mMediaPlayerDelegate = mediaPlayerDelegate; //?YoukuPlayerViewMediaPlayerDelegate
    //      mediaPlayerDelegate.mediaPlayer = BaseMediaPlayer.getInstance();      //MediaPlayerDelegate?
    mediaPlayerDelegate.mediaPlayer = RemoteInterface.baseMediaPlayer; //MediaPlayerDelegate?
    surfaceHolder = surfaceView.getHolder();
    surfaceHolder.addCallback(mediaPlayerDelegate.mediaPlayer); //?surface holder?mediaplayer
    if (!isHighEnd)
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}