中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

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

<?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>

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

創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站建設、網(wǎng)站重做改版、雙灤網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5建站購物商城網(wǎng)站建設、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為雙灤等各大城市提供網(wǎng)站開發(fā)制作服務。

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的回調(diào)
    }
    //視圖初始化(攝像頭2)
    private void initView2(){
        surfaceView2 = findViewById(R.id.surfaceView2);//獲得SurfaceView的實例
        mSurfaceHolder2 = surfaceView2.getHolder();//獲得SurfaceView的Holder
        mSurfaceHolder2.addCallback(this);//設置Holder的回調(diào)
    }
    //打開照相機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();
        }
    }
    //回調(diào)初始化
    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" />

當前名稱:仿抖音短視頻源碼開啟雙目攝像頭實時預覽
網(wǎng)站URL:http://www.2m8n56k.cn/article14/jcgsde.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站網(wǎng)站導航外貿(mào)建站建站公司營銷型網(wǎng)站建設外貿(mào)網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設
主站蜘蛛池模板: 欧美激情久久久久久久大片 | 综合国产| 日韩午夜视频在线观看 | 一区二区三区在线 | 欧 | 日本久久久久一级毛片 | 在线亚洲精品自拍 | 国产午夜精品不卡视频 | 色一伦一情一区二区三区 | 手机日韩理论片在线播放 | 国产精品久久久久一区二区三区 | 日本一区二区高清免费不卡 | 亚洲视频在线观看网址 | 久久久久欧美国产精品 | 国产精品久久久免费视频 | 亚洲日韩精品欧美一区二区一 | 国产一区二区三区四区在线 | 国产一级在线观看视频 | 午夜毛片视频高清不卡免费 | 日本卡一卡2卡3卡4精品卡无人区 | 欧美精品一区二区在线观看 | 国产伦精一区二区三区 | 久草在线视频免费看 | 国产成人精品午夜二三区 | 国产欧美一区二区三区沐欲 | 天堂免费在线视频 | 亚洲国产精品久久久久 | 久久精品中文字幕首页 | 中国女人毛茸茸免费视频 | 久久最新免费视频 | 精品久久久久久久高清 | 日韩一区二区天海翼 | 成年人www| 日韩中文字幕在线观看 | 精品国产一区二区三区在线 | 欧美成人久久久免费播放 | 国产深夜福利在线观看网站 | 美女扒开腿让男生桶爽网站 | 国产一级爱c片免费播放 | 老司机亚洲精品 | 亚洲免费人成在线视频观看 | 国产成人综合亚洲 |