概要
カメラアプリにはライトが必要なことがよくあります。暗い部屋の防犯カメラ、スキャナー、夜間のビデオ通話などです。KlugTorch は、カメラを動かしたまま、カメラライト(背面カメラの横の LED)をオン/オフします。
KlugTorch はまず、デバイスにカメラライトがあるかどうかを検出します。多くのタブレットと一部のスマートフォンにはライトがないため、アプリはそこでライトボタンを非表示にできます。
ライブカメラのストリームと並行して動作します。KlugTorch は独自のカメラを開かないため、ストリームとカメラを取り合うことがありません。
KlugMedia でストリーミングするアプリは、その内蔵のトーチ制御も使用できます。KlugTorch は、実証の場である当社のアプリで毎日使われています。
機能
- 自己完結型:ANE 1つで完結し、コアライブラリや依存 ANE の追加は不要
- デバイスにカメラライトがあるかを検出
- 1回の呼び出しでカメラライトをオン/オフ
- iOS ではカメラのストリーミング中も動作し、中断なし
- ライトの現在の状態を取得
- 切り替えのたびに、失敗した場合も含めて変更イベントを送信
- iOS と Android で共通の API
対応プラットフォーム
カメラライトのないデバイスや他のプラットフォームでは、isSupported が false を返すため、同じコードをすべてのアプリにそのまま残せます。
はじめに
アプリケーション記述子に拡張機能を追加します:
<extensions>
<extensionID>com.klug.torch.Torch</extensionID>
</extensions>
ライトは背面カメラの横にあるため、有効なカメラは背面カメラである必要があります。
コード例
3つの完全なフローです。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)以降 |
| 権限 | 独自の権限なし |
| ハードウェア | 背面カメラの横にあるカメラライト |