現在地: Visual LANSA を使用したWeb アプリケーション > 14. ウィジェットとサードパーティ統合 > 14.6 LANSA モバイル・アプリケーション・ウィジェット > 14.6.3 xDeviceCamera ウィジェット

14.6.3 xDeviceCamera ウィジェット

モバイル・デバイスのカメラを使って写真を撮ったり、モバイル・デバイスの写真ライブラリにアクセスします。

プロパティ

Source

イメージのソース元を示す列挙値。有効なオプション:

CAM: カメラから写真を撮影

LIB: 写真ライブラリから写真を選択

EnableImage

デバイスの写真撮影の有効・無効を示すブール値です。

EnableVideo

デバイスのビデオ撮影の有効・無効を示すブール値です。

SaveToPhotoGallery

写真をギャラリーに保存するかどうかを示すブール値です。

ReturnBase64String

base64 エンコーディングの文字列としてイメージ・データを返すかどうかを示すブール値です。

ReturnFile

イメージまたはビデオ・ファイルのパスと URL を返すかどうかを示すブール値です。

AllowEdit

サイズ調整などイメージやビデオ・クリップの編集をユーザーに許可するかどうかを示すブール値です。編集機能はデバイスにより異なります。

EnableAnnotation

カメラで撮影したまたはアルバムからの写真にコメントを付けることができるかどうかを示すブール値です。

VideoQuality

ビデオの質レベルを選択する列挙値です。有効なオプション: LOW (低)、MED (中)、HIGH (高)

VideoMaxDuration

ビデオの長さの制限値を秒数で表す整数値です。無制限にするには 0 を設定します。

OutputPath

カメラによって作成されるファイルの完全修飾パスを示す文字列値です。

OutputFile (READONLY)

イメージまたはビデオのファイルの論理パスを含む文字列値です。

OutputUrl (READONLY)

イメージまたはビデオのファイルの URL を含む文字列値です。

IsImage (READONLY)

イメージが撮れたかどうかをユーザーに知らせるブール値です。

IsVideo (READONLY)

ビデオが撮れたかどうかをユーザーに知らせるブール値です。

ImageAsBase64Data (READONLY)

base64 としてエンコーディングされたイメージ・データを含む文字列値です。

メソッド

ActivateCamera

デバイスのカメラを有効にします。

SetImageSize

イメージのサイズを設定します。イメージの実際のサイズを設定するには、幅と高さに 0 を設定します。

名前

タイプ

必須

説明

Orientation

列挙値

はい

サイズが特定の方向に適用されるかどうかを指定します。適用される場合、反対方向のサイズは入れ替えられます。

有効な値: BOTH、PORT、LAND

Width

整数

はい

イメージの幅

Height

整数

はい

イメージの高さ

 

SetBase64ImageSize

base64 にエンコーディングされた時のイメージのサイズを指定します。イメージのサイズ設定を利用する場合、幅と高さに 0 を設定します。

名前

タイプ

必須

説明

Orientation

列挙値

はい

サイズが特定の方向に適用されるかどうかを指定します。適用される場合、反対方向のサイズは入れ替えられます。

有効な値: BOTH、PORT、LAND

Width

整数

はい

イメージの幅

Height

整数

はい

イメージの高さ

 

イベント

Completed

イメージ/ビデオが撮られた時に起動します。

名前

タイプ

説明

Status

列挙値

状態コードを参照してください。

Message

文字列

 

 

サンプル・コード

推奨のコーディングは以下の通りです。ビデオを撮っている場合、データはファイルとして (ReturnFile := true) 戻し、ReturnBase64String に FALSE を設定します。

Define_Com Class(#xDeviceCamera) Name(#CameraUse)

Evtroutine Handling(#COM_OWNER.Initialize)
  #ActivateCamera.Enabled := false
Endroutine

Evtroutine Handling(#CameraUse.Initialize)
  #ActivateCamera.Enabled := true
Endroutine

Evtroutine Handling(#ActivateCamera.Click)
  #CameraUse.Source := CAM
  #CameraUse.EnableImage := true
  #CameraUse.EnableVideo := false
  #CameraUse.SetImageSize( PORT #ImageSizeWidth.Value.AsInteger #ImageSizeHeight.Value.AsInteger )
  #CameraUse.SaveToPhotoGallery := true
  #CameraUse.ReturnBase64String := true
  #CameraUse.SetBase64ImageSize( PORT #Base64Width.Value.AsInteger #Base64Height.Value.AsInteger )
  #CameraUse.ReturnFile := true
  #CameraUse.AllowEdit := false
  #CameraUse.EnableAnnotation := true
  #CameraUse.VideoQuality := HIGH
  #CameraUse.VideoMaxDuration := #VideoMaxDuration.Value.AsNumber
  #CameraUse.OutputPath := #OutputPath
  #CameraUse.ActivateCamera()
Endroutine

Evtroutine Handling(#CameraUse.Completed) Status(#lstatus) Message(#message)
  If (#lstatus = OK)
    #GeneratedFile := #CameraUse.OutputFile
    #GeneratedFileUrl := #CameraUse.OutputUrl
    If (#CameraUse.IsImage)
      #GeneratedType := 'Image'
    Else
      #GeneratedType := 'Video'
    Endif

    If (#CameraUse.ImageAsBase64Data <> "")
      #Base64 := #CameraUse.ImageAsBase64Data
      #LastImage.FileName := "data:image/png;base64," + #CameraUse.ImageAsBase64Data
    Endif
  Else
    #Status := #message
  Endif
  #Status := #lstatus
Endroutine
 
Write to a local file (xDeviceFileWrite)
Define_Com Class(#xDeviceFileWrite) Name(#FileWriter)

Evtroutine Handling(#COM_OWNER.Initialize)
  #Write.Enabled := false
Endroutine

Evtroutine Handling(#FileWriter.Initialize)
  #Write.Enabled := true
Endroutine

Evtroutine Handling(#Write.Click)
  #FileWriter.FileName := '/recipes/appleStrudel'
  #FileWriter.FileType := BIN
  #FileWriter.FileEncoding := UTF8
  #FileWriter.DataEncoding := BASE64
  #FileWriter.Data := 'Add 3 eggs and 4 cups of sugar'
  #FileWriter.Write()
Endroutine

Evtroutine Handling(#FileWriter.Completed) Status(#returnedStatus) Message(#message)
  #Status := #returnedStatus
  If (#Status <> OK)
    #StatusMessage := #message
  Endif
Endroutine
 
Read a local file (xDeviceFileRead)
Define_Com Class(#xDeviceFileRead) Name(#FileReader)

Evtroutine Handling(#COM_OWNER.Initialize)
  #Read.Enabled := false
Endroutine

Evtroutine Handling(#FileReader.Initialize)
  #Read.Enabled := true
Endroutine

Evtroutine Handling(#Read.Click)
  #FileReader.FileName := '/recipes/chocolateCake'
  #FileReader.FileType := TEXT
  #FileReader.FileEncoding := UTF8
  #FileReader.DataEncoding := NONE
  #FileReader.Read()
Endroutine

Evtroutine Handling(#FileReader.Completed) Status(#returnedStatus) Data(#returnedData) Message(#message)
  #Status := #returnedStatus
  If (#Status = OK)
    #Data := #returnedData
  Else
    #StatusMessage := #message
  Endif
Endroutine