android 中如何獲取camera當前狀態

android中,

調用攝像頭需要判斷當前攝像頭的狀態,沒找到對應的方法,

采用瞭個折中方法。

在非main線程裡調用Camera.open,catch 相應的RuntimeException,

 

 

[java]
<SPAN style="COLOR: #cc6600; FONT-SIZE: 14px">    <span style="white-space:pre">  </span>/** 
         * 測試當前攝像頭能否被使用 
         * @return 
         */   
        public static boolean isCameraCanUse() {   
            boolean canUse = true;   
            Camera mCamera = null;   
            try {   
                // TODO camera驅動掛掉,處理??    
                mCamera = Camera.open();   
            } catch (Exception e) {   
                canUse = false;   
            }   
            if (canUse) {   
                mCamera.release();   
                mCamera = null;   
            }   
               
            return canUse;   
        }  </SPAN> 

    <span style="white-space:pre">  </span>/**
         * 測試當前攝像頭能否被使用
         * @return
         */ 
        public static boolean isCameraCanUse() { 
            boolean canUse = true; 
            Camera mCamera = null; 
            try { 
                // TODO camera驅動掛掉,處理?? 
                mCamera = Camera.open(); 
            } catch (Exception e) { 
                canUse = false; 
            } 
            if (canUse) { 
                mCamera.release(); 
                mCamera = null; 
            } 
             
            return canUse; 
        } 

需要註意的是應該在自己程序的非UI線程中進行上面的判斷,因為進入自己的UI線程會導致當前其他程序正在拍攝視頻自動終止,
因為UI線程隻能有一個在運行。

這個方法可用,但是如果攝像頭沒有被使用,open和release會白白消耗些資源,另外camera驅動進程掛掉的情況沒有考慮

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。