亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

仿抖音短視頻源碼開啟雙目攝像頭實時預覽

發布時間:2020-08-11 16:11:55 來源:ITPUB博客 閱讀:170 作者:zhibo系統開發 欄目:編程語言
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="返回" />
    <SurfaceView
        android:id="@+id/surfaceView1"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_weight="5" />
    <SurfaceView
        android:id="@+id/surfaceView2"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_weight="5" />
</LinearLayout>

緊接著在對應的類中實現SurfaceHolder.Callback接口,并重寫surfaceCreated、surfaceChanged、surfaceDestroyed方法。

public class CameraTestActivity extends Activity implements  SurfaceHolder.Callback{
    public Button mButton;
    private Camera mCamera1,mCamera2;
    private SurfaceView surfaceView1,surfaceView2;
    private SurfaceHolder mSurfaceHolder,mSurfaceHolder2;
    private int cameraId = 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_camera);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
        initView();
        initView2();
        initButton();
    }
    //視圖初始化(攝像頭1)
    private void initView() {
        surfaceView1 = findViewById(R.id.surfaceView1);//獲得SurfaceView的實例
        mSurfaceHolder = surfaceView1.getHolder();//獲得SurfaceView的Holder
        mSurfaceHolder.addCallback(this);//設置Holder的回調
    }
    //視圖初始化(攝像頭2)
    private void initView2(){
        surfaceView2 = findViewById(R.id.surfaceView2);//獲得SurfaceView的實例
        mSurfaceHolder2 = surfaceView2.getHolder();//獲得SurfaceView的Holder
        mSurfaceHolder2.addCallback(this);//設置Holder的回調
    }
    //打開照相機1
    public void CameraOpen() {
        try
        {
            //打開攝像機1
            mCamera1 = Camera.open(cameraId);
            mCamera1.setDisplayOrientation(270);
            //綁定Surface并開啟預覽
            mCamera1.setPreviewDisplay(mSurfaceHolder);
            mCamera1.startPreview();
        } catch (IOException e) {
            mCamera1.release();
            mCamera1 = null;
            Toast.makeText(CameraTestActivity.this, "surface created failed", Toast.LENGTH_SHORT).show();
        }
    }
    //打開照相機2
    public void CameraOpen2() {
        try
        {
            //打開攝像機2
            mCamera2 = Camera.open(cameraId - 1);
            mCamera2.setDisplayOrientation(270);
            //綁定Surface并開啟預覽
            mCamera2.setPreviewDisplay(mSurfaceHolder2);
            mCamera2.startPreview();
        } catch (IOException e) {
            mCamera2.release();
            mCamera2 = null;
            Toast.makeText(CameraTestActivity.this, "surface created failed", Toast.LENGTH_SHORT).show();
        }
    }
    //回調初始化
    private void initButton() {
        //返回上個界面的按鈕
        mButton = findViewById(R.id.button2);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               Intent intent = new Intent(CameraTestActivity.this,MainActivity.class);
               startActivity(intent);
            }
        });
    }
    @Override
    public void surfaceCreated(SurfaceHolder surfaceHolder) {
        //檢查權限
        if (ContextCompat.checkSelfPermission(CameraTestActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
        } else {
            CameraOpen();
            CameraOpen2();
        }
    }
    @Override
    public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
        Camera.Parameters parameters = mCamera1.getParameters();
        mCamera1.setParameters(parameters);
        mCamera1.startPreview();
        Camera.Parameters parameters2 = mCamera2.getParameters();
        mCamera2.setParameters(parameters2);
        mCamera2.startPreview();
    }
    @Override
    public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
        mCamera1.stopPreview();
        mCamera1.release();
        mCamera1 = null;
        mCamera2.stopPreview();
        mCamera2.release();
        mCamera2 = null;
    }
}

記得別忘了在AndroidMainfest.xml中開啟權限了

<uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

木兰县| 寻乌县| 登封市| 濉溪县| 龙泉市| 沭阳县| 辽宁省| 兰考县| 乌恰县| 高唐县| 张家口市| 罗城| 江孜县| 临沭县| 新龙县| 丹东市| 正阳县| 丹棱县| 乐都县| 卓资县| 沅陵县| 金沙县| 独山县| 洛川县| 北辰区| 锡林郭勒盟| 侯马市| 涟水县| 太和县| 桐城市| 泽库县| 全州县| 六安市| 石楼县| 宜川县| 潜江市| 阿拉善盟| 怀安县| 长白| 湘潭县| 栾城县|