← すべての拡張機能

ネイティブ拡張機能

KlugTorch

com.klug.torch.Torch

APMは不要。ダウンロードしてすぐに使えます。これ以上シンプルにはできません。

デバイスにカメラライトがあるかを検出し、オン/オフを切り替えます。iOS では、カメラのストリーミング中でもストリームを中断せずに動作します。

iOSAndroid 本番稼働中 年額€19から · 購入

概要

カメラアプリにはライトが必要なことがよくあります。暗い部屋の防犯カメラ、スキャナー、夜間のビデオ通話などです。KlugTorch は、カメラを動かしたまま、カメラライト(背面カメラの横の LED)をオン/オフします。

KlugTorch はまず、デバイスにカメラライトがあるかどうかを検出します。多くのタブレットと一部のスマートフォンにはライトがないため、アプリはそこでライトボタンを非表示にできます。

ライブカメラのストリームと並行して動作します。KlugTorch は独自のカメラを開かないため、ストリームとカメラを取り合うことがありません。

KlugMedia でストリーミングするアプリは、その内蔵のトーチ制御も使用できます。KlugTorch は、実証の場である当社のアプリで毎日使われています。

機能

  • 自己完結型:ANE 1つで完結し、コアライブラリや依存 ANE の追加は不要
  • デバイスにカメラライトがあるかを検出
  • 1回の呼び出しでカメラライトをオン/オフ
  • iOS ではカメラのストリーミング中も動作し、中断なし
  • ライトの現在の状態を取得
  • 切り替えのたびに、失敗した場合も含めて変更イベントを送信
  • iOS と Android で共通の API

対応プラットフォーム

iOS arm64
Android arm64 · armv7

カメラライトのないデバイスや他のプラットフォームでは、isSupported が false を返すため、同じコードをすべてのアプリにそのまま残せます。

はじめに

アプリケーション記述子に拡張機能を追加します:

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

ライトは背面カメラの横にあるため、有効なカメラは背面カメラである必要があります。

コード例

3つの完全なフローです。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)以降
権限独自の権限なし
ハードウェア背面カメラの横にあるカメラライト