[英]Is there a possibilty to activate front camera flash on Samsung phones?
我目前正在嘗試激活Samsung Galaxy A6上的內置前閃光燈,但是該設備提供的信息類似於沒有內置前閃光燈。
我已經嘗試過其他方法,可以通過搜索激活Flash來找到。
首先嘗試獲得支持的FlashMode,然后使用setParameters(API <23)激活Flash。 但是,僅前置攝像頭的getParameters()不會返回內置前置閃光燈的任何信息。 對於該應用程序,似乎沒有可用的前置閃光燈。
然后,我嘗試使用在API> = 23中引入的Camera2 API,並且出現相同的問題。 獲取相機特征,然后檢查FLASH_INFO是否可用,只會導致返回false。 同樣嘗試使用setTorchMode(FRONT_CAMERA,true)激活閃光燈組件也會引發一個異常,該異常表示:沒有可用的閃光燈組件。
我目前僅將Samsung Galaxy A6作為帶有內置前置閃光燈的測試設備。 相同的代碼對於后置(后置)相機工作正常,沒有任何問題。
廣告1)
try {
Camera camera;
camera = Camera.open(cameraId);
if (camera == null) {
return false;
}
Camera.Parameters parameters = camera.getParameters();
if (parameters.getFlashMode() == null) {
camera.release();
return false;
}
...
它只是在此時退出,因為.getFlashMode()對於前置攝像頭返回null。 下一步將是檢查受支持的FlashMode,然后調用Camera的setParamater。
廣告2)
try {
String camID = null;
for(String cameraID : mCameraManager.getCameraIdList()) {
CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(cameraID);
int orientation = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if (orientation == CameraCharacteristics.LENS_FACING_FRONT) {
if(cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
camID = cameraID;
}
}
if(camID != null) {
mCameraManager.setTorchMode(camID, true);
}
} catch (Exception exc) {
...
}
這些只是用於簡單激活前閃光燈的片段,但是這兩種方法的行為就像沒有內置前閃光燈的硬件響應一樣。
經過研究,似乎一些電話制造商正在使用專用API來控制硬件。 特別是三星和華為正在利用這一點。 設備上的主相機應用主要由該API控制,因此可以按預期使用Frontflash。 但是,即使像Instagram和Snapchat這樣的大型相機應用也無法擺脫這一點,並且也無法激活例如Frontflash。
出於自身目的,硬件只是不提供用於在某些設備上激活Frontflash的任何功能,它的反應就像沒有內置的frontflash。 到目前為止,沒有針對此問題的解決方案。
現有的解決方法正在使屏幕變白,以減輕手機正面的環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.