рдЪрдХрд╛рдЪреМрдВрдз рджреГрд╖реНрдЯрд┐ рдХрд╛ рдЪрд╢реНрдорд╛ред рдореЗрдХрд░ рдкрд╛рд░реНрдЯ 5 рдлреНрд▓реИрд╢ рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреИрдорд░рд╛ 2 рдПрдкреАрдЖрдИ



рддрдХрдиреАрдХреА рд╕рдлрд▓рддрд╛рдУрдВ рдФрд░ рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЗ рдпреБрдЧ рдореЗрдВ рд░рд╣рддреЗ рд╣реБрдП, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреИрд╕реЗ рдорд╛рд╕реНрдХ рдФрд░ рдмреЗрдЬреЛрд╕ рд░реЙрдХреЗрдЯ рдЖрдХрд╛рд╢ рдореЗрдВ рднрд╛рдЧрддреЗ рд╣реИрдВ, рд╣рдо, рдЙрдЪреНрдЪ рддрдХрдиреАрдХреА рд╢рд┐рдХреНрд╖рд╛ рд╡рд╛рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧ, рдЕрдХреНрд╕рд░ рдПрдХ рд╕рдлрд▓рддрд╛ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдмрдЧрд▓ рдореЗрдВ, рд╕рдЪрдореБрдЪ рдореЗрдЬ рд╕реЗ рд╕реЛрдлреЗ рд╕реЗ рдЙрдардирд╛ рдирд╣реАрдВ ред

рдЦреБрдж рдХреЗ рд▓рд┐рдП рдиреНрдпрд╛рдпрд╛рдзреАрд╢ рдХреНрдпрд╛ рдЦреЛрдЬ рдЖрдзреБрдирд┐рдХ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд╕реНрд░реЛрдд рдирд╣реАрдВ рджреВрдВрдЧрд╛, рддрд╛рдХрд┐ рднрд╡рд┐рд╖реНрдп рдХреА рдЖрдп рдХреЛ рд╕рд╛рдЭрд╛ рди рдХрд░ рд╕рдХреВрдВред
, , . ┬л ┬╗ Google Pixel. IT RAW, HDR-, ┬л┬╗, . Pixel 4 ┬лNight Sight┬╗ . : , . , .

рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд░рд╛рдд рдореЗрдВ рдЪрд▓рдирд╛ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реНрдХреНрд░рдм рдХрд░рдирд╛ рдХрд┐рд╕реА рддрд░рд╣ рдЕрд╕рд╣рдЬ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░рд╛рдд рдХреЗ рдореЛрдб рдореЗрдВ рднреАред рдФрд░ рдлрд┐рд░ рдореЗрд░реА рдирдЬрд░ рдЧрд▓рддреА рд╕реЗ рдПрдХ рд╢реЗрд▓реНрдл рдкрд░ рдкрдбрд╝реЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд╡реАрдЖрд░-рд╣реЗрдбрд╕реЗрдЯ рдкрд░ рдкрдбрд╝реАред рд╕рдлрд▓рддрд╛ рд╕рдЪ рд╣реЛ рдЧрдИ рд╣реИ! рдпрд╣ рдХреЗрд╡рд▓ рд░рд╣рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреИрдорд░рд╛ 2 рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд╛рд░ рдкрджреЛрдВ рдкрд░ рд╕рдВрдЪрд┐рдд рдЬреНрдЮрд╛рди, "рдирд╛рдЗрдЯ рд╕рд╛рдЗрдЯ" рд╕реЗ рдЫрд╡рд┐ рдХреЛ рд╕реАрдзреЗ рдЖрдВрдЦреЛрдВ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрд╕реА рд╕рдордп, рдПрдХ рдЕрдВрдзреЗрд░реЗ рдХрдорд░реЗ рдореЗрдВ рдХрд╛рд▓реА рдмрд┐рд▓реНрд▓реА рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рде рдореБрдХреНрдд рд╣реЛрдВрдЧреЗред рдкреНрд░рдХрд╛рд╢ рдХреЗ рдмрд┐рдирд╛, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдлреЛрдЯреЙрдиреЛрдВ, рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рдХреЛрдЯрди рдХреЗ рдЭрд╛рдБрдХреЛрдВ рдХреЗ рд╕реНрддрд░ рддрдХ (рдпрд╛ рдЙрд╕рд╕реЗ рднреА рдЖрдЧреЗ) рдкрд╣реБрдБрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рдХреИрд╕реЗ рджреЗрдЦрдирд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

1: рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рд░рд┐рдпрд▓рд┐рдЯреА рд╣реЗрдбрд╕реЗрдЯ, (рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рд╕рдВрднрд╡)



2: рдПрдХ рдХреИрдорд░рд╛ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛)



: рдХреИрдорд░рд╛ Camera2 рдПрдкреАрдЖрдИ рдХреА рдореВрд▓ рдмрд╛рддреЛрдВ рдХрд╛ рдЬреНрдЮрд╛рди (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ)

рднрд╛рдЧ рдПрдХ
рднрд╛рдЧ рджреЛ
рднрд╛рдЧ рддреАрди
рднрд╛рдЧ рдЪрд╛рд░

рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХреЛ рдореВрд░реНрддрд┐рдХрд▓рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реАрдЖрд░ рд╕рддрд╣ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд╣реЗрдбрд╕реЗрдЯ рдореЗрдВ рдЪрдордХ рдЬрд╛рдПрдЧрд╛ред

рдЦрд╝рд╛рдХрд╛
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#03061B"
    tools:context=".MainActivity">

    <TextureView
        android:id="@+id/textureView"
        android:layout_width="240dp"
        android:layout_height="320dp"
        android:layout_marginTop="28dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextureView
        android:id="@+id/textureView3"
        android:layout_width="240dp"
        android:layout_height="320dp"
        android:layout_marginTop="16dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textureView" />

    <LinearLayout
        android:layout_width="165dp"
        android:layout_height="40dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textureView3"
        app:layout_constraintVertical_bias="0.838">

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="36dp"
            android:backgroundTint="#3F51B5"
            android:text=""
            android:textColor="#1A87DD" />

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="37dp"
            android:backgroundTint="#3F51B5"
            android:text=""
            android:textColor="#2196F3" />
    </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрдирд╛рд╡рдЯ рдЖрдпрддрд╛рдХрд╛рд░ рд╣реЛ рдЧрдИ, рдЬрдмрдХрд┐ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╡реАрдЖрд░ рдЦрд┐рд▓реМрдиреЗ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд┐рд╕реА рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рдЧреЛрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗред рдЖрдЧреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдЕрднреА рднреА рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд░реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдПрдХ рдорд╛рдореВрд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рд╕реЗ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рд╣реИред

package com.example.twovideosurfaces;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.graphics.SurfaceTexture;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCaptureSession;
import android.hardware.camera2.CameraDevice;
import android.hardware.camera2.CameraManager;
import android.hardware.camera2.CaptureRequest;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.StrictMode;
import android.util.Log;
import android.view.Surface;
import android.view.TextureView;
import android.view.View;
import android.widget.Button;
import java.util.Arrays;
public class MainActivity extends AppCompatActivity  {
    public static final String LOG_TAG = "myLogs";
    public static Surface surface1 = null;
    public static Surface surface2 = null;
    CameraService[] myCameras = null;
    private CameraManager mCameraManager = null;
    private final int CAMERA1 = 0;
    private Button mOn = null;
    private Button mOff = null;
    public static TextureView mImageViewUp = null;
    public static TextureView mImageViewDown = null;
    private HandlerThread mBackgroundThread;
    private Handler mBackgroundHandler = null;
    private void startBackgroundThread() {
        mBackgroundThread = new HandlerThread("CameraBackground");
        mBackgroundThread.start();
        mBackgroundHandler = new Handler(mBackgroundThread.getLooper());
    }
    private void stopBackgroundThread() {
        mBackgroundThread.quitSafely();
        try {
            mBackgroundThread.join();
            mBackgroundThread = null;
            mBackgroundHandler = null;
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.activity_main);
        Log.d(LOG_TAG, " ");
        if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED
                ||
                (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
        ) {
            requestPermissions(new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
        }
        mOn = findViewById(R.id.button1);
        mOff = findViewById(R.id.button3);
        mImageViewUp = findViewById(R.id.textureView);
        mImageViewDown = findViewById(R.id.textureView3);
        mOn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (myCameras[CAMERA1] != null) {//  
                    if (!myCameras[CAMERA1].isOpen()) myCameras[CAMERA1].openCamera();
                }
            }
        });
        mOff.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });
        mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
        try {
            //     
            myCameras = new CameraService[mCameraManager.getCameraIdList().length];
            for (String cameraID : mCameraManager.getCameraIdList()) {
                Log.i(LOG_TAG, "cameraID: " + cameraID);
                int id = Integer.parseInt(cameraID);
                //    
                myCameras[id] = new CameraService(mCameraManager, cameraID);
            }
        } catch (CameraAccessException e) {
            Log.e(LOG_TAG, e.getMessage());
            e.printStackTrace();
        }
    }
    public class CameraService {
        private String mCameraID;
        private CameraDevice mCameraDevice = null;
        private CameraCaptureSession mSession;
        private CaptureRequest.Builder mPreviewBuilder;
        public CameraService(CameraManager cameraManager, String cameraID) {
            mCameraManager = cameraManager;
            mCameraID = cameraID;
        }
        private CameraDevice.StateCallback mCameraCallback = new CameraDevice.StateCallback() {
            @Override
            public void onOpened(CameraDevice camera) {
                mCameraDevice = camera;
                Log.i(LOG_TAG, "Open camera  with id:" + mCameraDevice.getId());
                startCameraPreviewSession();
            }
            @Override
            public void onDisconnected(CameraDevice camera) {
                mCameraDevice.close();
                Log.i(LOG_TAG, "disconnect camera  with id:" + mCameraDevice.getId());
                mCameraDevice = null;
            }
            @Override
            public void onError(CameraDevice camera, int error) {
                Log.i(LOG_TAG, "error! camera id:" + camera.getId() + " error:" + error);
            }
        };
        private void startCameraPreviewSession() {
            SurfaceTexture texture = mImageViewUp.getSurfaceTexture();
            texture.setDefaultBufferSize(1280, 1024);
            surface1 = new Surface(texture);
            SurfaceTexture texture2 = mImageViewDown.getSurfaceTexture();
            surface2 = new Surface(texture2);
            texture2.setDefaultBufferSize(1280, 1024);
            try {
                mPreviewBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
                mPreviewBuilder.addTarget(surface1);
                mPreviewBuilder.addTarget(surface2);
                mCameraDevice.createCaptureSession(Arrays.asList(surface1,surface2),
                        new CameraCaptureSession.StateCallback() {
                            @Override
                            public void onConfigured(CameraCaptureSession session) {
                                mSession = session;

                                try {
                                    mSession.setRepeatingRequest(mPreviewBuilder.build(), null, mBackgroundHandler);
                                } catch (CameraAccessException e) {
                                    e.printStackTrace();
                                }
                            }
                            @Override
                            public void onConfigureFailed(CameraCaptureSession session) {
                            }
                        }, mBackgroundHandler);
            } catch (CameraAccessException e) {
                e.printStackTrace();
            }
        }
        public boolean isOpen() {
            if (mCameraDevice == null) {
                return false;
            } else {
                return true;
            }
        }
        public void openCamera() {
            try {
                if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
                    mCameraManager.openCamera(mCameraID, mCameraCallback, mBackgroundHandler);
                }
            } catch (CameraAccessException e) {
                Log.i(LOG_TAG, e.getMessage());
            }
        }
        public void closeCamera() {
            if (mCameraDevice != null) {
                mCameraDevice.close();
                mCameraDevice = null;
            }
        }
    }
    @Override
    public void onPause() {
        if (myCameras[CAMERA1].isOpen()) {
            myCameras[CAMERA1].closeCamera();
        }
        stopBackgroundThread();
        super.onPause();
    }
    @Override
    public void onResume() {
        super.onResume();
        startBackgroundThread();
    }
}

рд╣рд╛рдВ, рдФрд░ рдордд рднреВрд▓рдирд╛

рдШреЛрд╖рдгрд╛рдкрддреНрд░
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.twovideosurfaces">
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.NoActionBar"
        >
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>


рдЕрдм рд╣рдо рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЛ рд╡реАрдЖрд░ рд╣реЗрдбрд╕реЗрдЯ рдореЗрдВ рдзрдХреЗрд▓рддреЗ рд╣реИрдВ рдФрд░ рдШрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЖрдБрдЦ рдХреЗ рд▓рд┐рдП 1280 x 1024 рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдмрд░рдмрд╛рдЧ рдХреЗ рджрд░реНрд╢рди рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рджреГрд╖реНрдЯрд┐ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рд╛рде, рдЕрдЬреАрдм, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╢рд╛рдВрдд рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдлреНрд░рдВрдЯ рдЯреНрд░рд╛рдВрд╕рд▓реВрд╕реЗрдВрдЯ рд╣реЗрдбрд╕реЗрдЯ рдкреИрдирд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рдордиреЗ рдЙрд╕рдореЗрдВ рдПрдХ рдЫреЗрдж рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рд╕рдмрд╕реЗ рдмрдЬрдЯреАрдп рд╡реАрдЖрд░ рдореЙрдбрд▓ рдкрд░, рдРрд╕рд╛ рдкреИрдирд▓ рднреА рдмрд┐рд▓реНрдХреБрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдореИрдиреБрдЕрд▓ рд╢реНрд░рдо рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдЕрдкрд╡рд┐рддреНрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рдЕрдм рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ Google рдХреИрдорд░рд╛ API рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реНрдг рдЕрдВрдзреЗрд░рд╛ рд╣реИ, рдФрд░ рдирд╛рдЗрдЯ рд╡рд┐рдЬрди рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрди рд╕рднреА рд░реЙ, рдПрдЪрдбреАрдЖрд░-рд╕реНрдЯреИрдХрд┐рдВрдЧ рдФрд░ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рджреГрд╢реНрдп рдорд╛рдиреНрдпрддрд╛ ред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╕рддреНрд░ рдореЗрдВ рд▓рд┐рдЦреЗрдВ:

mPreviewBuilder.set(CaptureRequest.CONTROL_SCENE_MODE,
                                            CaptureRequest.CONTROL_SCENE_MODE_NIGHT);


рдФрд░ рдЕрдзрд┐рдХрддрдо рддрдХ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ рдФрд░ рдлрд╝реЛрдЯреЛрдЧреНрд░рд╛рдлрд╝реА рдХреЛ рдЕрдирд╕реБрдирд╛ рдХрд░ рджрд┐рдпрд╛

 mPreviewBuilder.set(CaptureRequest.CONTROL_AE_MODE,
        CaptureRequest.CONTROL_AE_MODE_OFF);
mPreviewBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME,Long.valueOf("100000000"));
 mPreviewBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, 30000);


рдУрд╣, рдореИрдВ рдЕрдВрдзрд╛ рд╣реВрдБ!



рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдмрд┐рд▓реНрд▓реА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓рддрд╛ рд╣реИ рдЬрдм рдЙрд╕реЗ рдмреЗрдбрд░реВрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рд┐рд╡рд┐рдВрдЧ рд░реВрдо рдореЗрдВ рд╕реЗрдХреНрд╕ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдЧрдгрдирд╛ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ (рдФрд░ рдПрдкреАрдЖрдИ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рд╕рд┐рд░реНрдл рдПрдХ рдпреБрдЧрд▓ рд╣реИрдВ) рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдЯреНрд╡рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рд░рд╛рдд рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд╛рдВрджрдиреА рдирд╣реАрдВ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЯреИрдЧрд╛ рдореЗрдВ рдШрдиреЗ рдмрд╛рджрд▓ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрдбрд╝рд╛рди рдлреЛрдЯреЙрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдРрд╕реА рд░рд╛рддред рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ...

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╢реВрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред



рд▓реЗрдХрд┐рди рдЖрдзреБрдирд┐рдХ рдХреИрдорд░реЗ рдЕрджреНрднреБрдд рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрднреА рднреА рдПрдХ рдХрд╛рд▓реА рдмрд┐рд▓реНрд▓реА рдкрд╛рддреЗ рд╣реИрдВ ...



рдЕрдм рдЖрдк рд░рд╛рдд рдореЗрдВ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рджрд┐рди рдХреЗ рджреМрд░рд╛рди рдЖрдк рд╕рдВрдЧрд░реЛрдз рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд░рд╛рдд рдореЗрдВ рднреА рдЕрд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдЖрдкрдХреЛ рджреЗрдЦреЗрдЧрд╛, рд░рд╛рдд рдХреЗ рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рдЙрдирдХреЗ рд╕рд┐рд░ рдкрд░ рд╡реАрдЖрд░ рд╣реЗрдбрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдШреВрд░рддреЗ рд╣реБрдП ...

All Articles