pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何在android中同時打開手電筒和前置攝像頭

How to turn on flashlight and front camera at the same time in android(如何在android中同時打開手電筒和前置攝像頭)
本文介紹了如何在android中同時打開手電筒和前置攝像頭的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在我的應用程序的一個要求中,我需要彈出一個包含前置攝像頭預覽的活動,同時我還需要打開手電筒.但是我觀察到,我能夠打開手電筒和后置攝像頭,但不是前置攝像頭和手電筒.以下是我的代碼:

In one of the requirement in my app I need to pop up an activity containing the front camera preview,at this same time I need to turn on the flashlight as well.However I observe that,I am able to turn on the flashlight and back camera but not front camera and flashlight together.Following is my code:

    public class Cam extends Activity {

        private static int cameraId = 0;
        private Camera camera;

        //Adding for camera preview
        public static FrameLayout preview;
        public static CameraPreview mPreview;
        Context context;

        ImageButton btnSwitch;
        private boolean isFlashOn;
        private boolean hasFlash;
        Parameters params;


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

            Log.e("Cam","Inside onCreate");
            setContentView(R.layout.cam);
            context = getApplicationContext();      

            btnSwitch = (ImageButton) findViewById(R.id.btnSwitch);

            hasFlash = getApplicationContext().getPackageManager()
                    .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

            startCamera();

            // displaying button image
            toggleButtonImage();        

            btnSwitch.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    if (isFlashOn) {
                        turnOffFlash();
                    } else {
                        turnOnFlash();
                    }
                }
            });     
        }

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

            turnOffFlash();

            Log.e("Cam","Inside onPause");
            try {
                if (camera != null) {
                    camera.release();
                    camera = null;
                    preview.removeView(mPreview);
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
        }

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

            Log.e("Cam","Inside onResume");
            try {
                if(camera ==null) {
                    Log.d("Cam","in resume,camera is  null");
                    try {
                        camera = android.hardware.Camera.open(cameraId); //opens front cam              
                        // camera = Camera.open(); when I use this I can on/off the flashlight,since I am using the back camera.
                        mPreview = new CameraPreview(this, camera);
                        preview = (FrameLayout) findViewById(R.id.camera_preview);
                        preview.addView(mPreview);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        protected void onDestroy() {
            super.onDestroy();
            Log.e("Cam","Inside onDestroy");
            if (camera != null) {
                try {
                    camera.release();
                    camera = null;
                    preview.removeView(mPreview);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

        private void startCamera() {

                    Log.e("Cam","Inside doInBackground");
                    String msg = "";
                    // Do we have a camera?
                    try {
                        if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) {

                        } else {
                            cameraId = AppFunctions.findFrontFacingCamera();//A function that returns 0 for front camera
                            if (cameraId < 0) {

                            } else {

                                try {
                                    camera = Camera.open(cameraId);//opens front cam 
                                    // camera = Camera.open(); when I use this I can on/off the flashlight,since I am calling the back camera.
                                    params = camera.getParameters(); 
                                    Log.e("Cam","camera id" + cameraId);
                                    Log.e("Cam","params" + params);
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }

                                try {
                                    mPreview = new CameraPreview(getApplicationContext(), camera);
                                    preview = (FrameLayout) findViewById(R.id.camera_preview);
                                    preview.addView(mPreview);
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    } catch (Exception e3) {
                        e3.printStackTrace();
                    }
        }

        private void turnOnFlash() {
            Log.v("Cam","Inside turnOnFlash");
            if (!isFlashOn) {
                if (camera == null || params == null) {
                    Log.v("Cam","camera or param is null");
                    return;
                }

                params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                camera.setParameters(params);
                camera.startPreview();
                isFlashOn = true;

                // changing button/switch image
                toggleButtonImage();
            }

        }

        /*
         * Turning Off flash
         */
        private void turnOffFlash() {
            Log.v("Cam","Inside turnOffFlash");
            if (isFlashOn) {
                if (camera == null || params == null) {
                    Log.v("Cam","camera or param is null");
                    return;
                }
                params.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(params);
                camera.stopPreview();
                isFlashOn = false;

                // changing button/switch image
                toggleButtonImage();
            }
        }

        private void toggleButtonImage(){
            if(isFlashOn){
                btnSwitch.setImageResource(R.drawable.btn_switch_on);
            }else{
                btnSwitch.setImageResource(R.drawable.btn_switch_off);
            }
        }
    }

清單

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.front" />
<permission android:name="android.permission.FLASHLIGHT" />  

如何同時打開手電筒和前置攝像頭?任何幫助將不勝感激!

How can I turn on the flashlight and front cam simultaneously? Any help would be appreciated !

推薦答案

手電筒

 public void onToggleClicked(View view) {
    PackageManager pm = context.getPackageManager();
    final Parameters p = camera.getParameters();
    if (isFlashSupported(pm)) {
        boolean on = ((ToggleButton) view).isChecked();
        if (on) {
            Log.i("info", "torch is turn on!");
            p.setFlashMode(Parameters.FLASH_MODE_TORCH);
            camera.setParameters(p);
            camera.startPreview();
        } else {
            Log.i("info", "torch is turn off!");
            p.setFlashMode(Parameters.FLASH_MODE_OFF);
            camera.setParameters(p);
            camera.stopPreview();
        }

相機:

 ImageButton ib = (ImageButton) findViewById(R.id.buttonToast);
    ib.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(i, CAPTURE_IMAGE_CAPTURE_CODE);
        }
    });

這篇關于如何在android中同時打開手電筒和前置攝像頭的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Why does the android emulator camera stop unexpectedly?(為什么android模擬器相機會意外停止?)
Android camera , onPictureTaken(byte[] imgData, Camera camera) method amp; PictureCallback never called(Android camera , onPictureTaken(byte[] imgData, Camera camera) 方法 amp;PictureCallback 從未調用過) - IT屋-程序員軟件開發技
Understanding the libGDX Projection Matrix(了解 libGDX 投影矩陣)
QR code reading with camera - Android(使用相機讀取二維碼 - Android)
IP camera with OpenCv in Java(Java中帶有OpenCv的IP攝像頭)
Android mock Camera(Android 模擬相機)
主站蜘蛛池模板: 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 铝扣板-铝方通-铝格栅-铝条扣板-铝单板幕墙-佳得利吊顶天花厂家 elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 浙江皓格药业有限公司| 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 焊接减速机箱体,减速机箱体加工-淄博博山泽坤机械厂 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 昆明化妆培训-纹绣美甲-美容美牙培训-昆明博澜培训学校 | 板框压滤机-隔膜压滤机-厢式压滤机生产厂家-禹州市君工机械设备有限公司 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 写方案网_方案策划方案模板下载 事迹材料_个人事迹名人励志故事 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 大倾角皮带机-皮带输送机-螺旋输送机-矿用皮带输送机价格厂家-河南坤威机械 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 |