개요
카메라 앱에는 조명이 필요할 때가 많습니다. 어두운 방의 보안 카메라, 스캐너, 야간 영상 통화 등이 그렇습니다. KlugTorch는 카메라가 계속 실행되는 동안 카메라 조명(후면 카메라 옆 LED)을 켜고 끕니다.
KlugTorch는 먼저 기기에 카메라 조명이 있는지 감지합니다. 많은 태블릿과 일부 휴대폰에는 조명이 없으므로, 앱은 그런 기기에서 조명 버튼을 간단히 숨길 수 있습니다.
실시간 카메라 스트림과 함께 동작합니다. KlugTorch는 자체 카메라를 열지 않으므로 스트림과 카메라를 두고 경쟁하지 않습니다.
KlugMedia로 스트리밍하는 앱은 내장 토치 제어도 사용할 수 있습니다. KlugTorch는 개념 증명인 저희 앱에서 매일 사용되고 있습니다.
기능
- 독립형: ANE 하나로 충분하며, 코어 라이브러리나 의존성 ANE를 추가할 필요가 없음
- 기기에 카메라 조명이 있는지 감지
- 한 번의 호출로 카메라 조명 켜기/끄기
- iOS에서 카메라 스트리밍 중에도 중단 없이 동작
- 조명의 현재 상태 읽기
- 전환할 때마다 변경 이벤트 발생, 실패한 경우에도 발생
- iOS와 Android를 위한 하나의 API
지원 플랫폼
카메라 조명이 없는 기기와 다른 플랫폼에서는 isSupported가 false를 반환하므로, 같은 코드를 모든 앱에 그대로 둘 수 있습니다.
시작하기
애플리케이션 디스크립터에 확장을 추가합니다:
<extensions>
<extensionID>com.klug.torch.Torch</extensionID>
</extensions>
조명은 후면 카메라 옆에 있으므로 후면 카메라가 활성 상태여야 합니다.
코드 예제
세 가지 완전한 흐름입니다. on()과 off()는 즉시 반환되며, 각 호출 뒤에 변경 이벤트가 오고 mode가 결과를 알려 줍니다. 전체 문서 →
import com.klug.torch.Torch; import flash.events.Event; var torch:Torch = Torch.getInstance(); // iOS: true if the default (back) camera has a torch. // Android 6+: true if a back-facing camera has a flash. // False on devices without a light and on other platforms. lightButton.visible = torch.isSupported; // lightButton: your app's toggle button
var wantLight:Boolean = false; torch.addEventListener( Event.CHANGE, onTorchChange ); // after every on() / off() function setLight( on:Boolean ):void { wantLight = on; if ( on ) torch.on(); else torch.off(); } function onTorchChange( e:Event ):void { // the event carries no detail: read mode for the current state lightButton.selected = torch.mode; if ( torch.mode != wantLight ) // the light could not be switched showMessage( "The light is not available right now." ); // your app }
function stopStreaming():void { if ( torch.mode ) setLight( false ); // first the light, then the camera stopCamera(); // your app's stream shutdown torch.removeEventListener( Event.CHANGE, onTorchChange ); }
API 개요
| Torch.getInstance() | 단일 인스턴스를 반환합니다. |
| isSupported | 기기에 사용 가능한 카메라 조명이 있을 때만 true입니다: iOS에서는 기본(후면) 카메라에 토치가 있는 경우, Android 6 이상에서는 후면 카메라에 플래시가 있는 경우. |
| on() | 카메라 조명을 켜며, 이후 변경 이벤트가 발생합니다. |
| off() | 카메라 조명을 끄며, 이후 변경 이벤트가 발생합니다. |
| mode | 조명이 켜져 있는 동안 true입니다. iOS는 카메라의 토치 상태를 읽고, Android는 마지막으로 성공한 on() / off()의 상태를 보고합니다. |
이벤트
| Event.CHANGE ("change") | 모든 on()과 off() 뒤에 발생하며, 조명을 전환하지 못한 경우에도 발생합니다. 결과는 mode를 읽어 확인하세요. |
KlugTorch 구매
AIR 애플리케이션 1개에 대한 연간 라이선스이며 12개월간 모든 업데이트를 제공합니다. 결제 후 확장, ActionScript 라이브러리, 문서를 이메일로 보내 드리며, 보통 영업일 기준 1일 이내입니다. 라이선스 및 약관
요구 사항
| AIR SDK | 51.x (HARMAN) |
| iOS | iOS 17 이상 |
| Android | Android 6.0 (API 23) 이상 |
| 권한 | 자체 요구 사항 없음 |
| 하드웨어 | 후면 카메라 옆의 카메라 조명 |