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驅動進程掛掉的情況沒有考慮