← 모든 확장

네이티브 확장

KlugTorch

com.klug.torch.Torch

APM이 필요 없습니다. 다운로드해서 바로 사용하세요. 이보다 더 간단할 수 없습니다.

기기에 카메라 조명이 있는지 감지하고 켜고 끕니다. iOS에서는 카메라가 스트리밍 중일 때도 스트림을 중단하지 않고 동작합니다.

iOSAndroid 프로덕션 운영 중 연 €19부터 · 구매

개요

카메라 앱에는 조명이 필요할 때가 많습니다. 어두운 방의 보안 카메라, 스캐너, 야간 영상 통화 등이 그렇습니다. KlugTorch는 카메라가 계속 실행되는 동안 카메라 조명(후면 카메라 옆 LED)을 켜고 끕니다.

KlugTorch는 먼저 기기에 카메라 조명이 있는지 감지합니다. 많은 태블릿과 일부 휴대폰에는 조명이 없으므로, 앱은 그런 기기에서 조명 버튼을 간단히 숨길 수 있습니다.

실시간 카메라 스트림과 함께 동작합니다. KlugTorch는 자체 카메라를 열지 않으므로 스트림과 카메라를 두고 경쟁하지 않습니다.

KlugMedia로 스트리밍하는 앱은 내장 토치 제어도 사용할 수 있습니다. KlugTorch는 개념 증명인 저희 앱에서 매일 사용되고 있습니다.

기능

  • 독립형: ANE 하나로 충분하며, 코어 라이브러리나 의존성 ANE를 추가할 필요가 없음
  • 기기에 카메라 조명이 있는지 감지
  • 한 번의 호출로 카메라 조명 켜기/끄기
  • iOS에서 카메라 스트리밍 중에도 중단 없이 동작
  • 조명의 현재 상태 읽기
  • 전환할 때마다 변경 이벤트 발생, 실패한 경우에도 발생
  • iOS와 Android를 위한 하나의 API

지원 플랫폼

iOS arm64
Android arm64 · armv7

카메라 조명이 없는 기기와 다른 플랫폼에서는 isSupported가 false를 반환하므로, 같은 코드를 모든 앱에 그대로 둘 수 있습니다.

시작하기

애플리케이션 디스크립터에 확장을 추가합니다:

app.xml
<extensions>
    <extensionID>com.klug.torch.Torch</extensionID>
</extensions>

조명은 후면 카메라 옆에 있으므로 후면 카메라가 활성 상태여야 합니다.

코드 예제

세 가지 완전한 흐름입니다. on()과 off()는 즉시 반환되며, 각 호출 뒤에 변경 이벤트가 오고 mode가 결과를 알려 줍니다. 전체 문서 →

1 · 조명이 있는 곳에만 조명 버튼 표시
Setup.as
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
2 · 조명을 전환하고 결과 따라가기
Light.as
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
}
Android에서는 앱의 다른 부분이 카메라를 열어 둔 동안(예: AIR의 flash.media.Camera 스트림) 시스템이 조명을 전환하지 않습니다. 이때 on()은 변경 이벤트로 끝나고 mode는 false로 유지됩니다. KlugMedia로 스트리밍하는 앱은 대신 setTorch()를 사용합니다.
3 · 카메라가 멈추면 조명 끄기
Stream.as
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일 이내입니다. 라이선스 및 약관

심플
€19 / 년
  • AIR 애플리케이션 1개에 대한 라이선스
  • 12개월간 모든 업데이트
  • 지원 없음
심플 구매
스탠더드
€149 / 년
  • AIR 애플리케이션 1개에 대한 라이선스
  • 12개월간 모든 업데이트
  • 7일 이내 이메일 답변
스탠더드 구매
프라이어리티
€299 / 년
  • AIR 애플리케이션 1개에 대한 라이선스
  • 12개월간 모든 업데이트
  • 48시간 이내 이메일 답변
프라이어리티 구매
세금은 Link(Stripe)가 결제 시 계산합니다. 결제 중에 AIR 앱의 애플리케이션 ID를 입력합니다.

요구 사항

AIR SDK51.x (HARMAN)
iOSiOS 17 이상
AndroidAndroid 6.0 (API 23) 이상
권한자체 요구 사항 없음
하드웨어후면 카메라 옆의 카메라 조명