LoginSignup
0
0

[OutSystems]Camera Pluginが動画に対応したので試してみる

Posted at

Camera PluginがVersion 7.2.0で動画撮影に対応したとのことなので、動作確認してみる。
ドキュメント - Camera pluginに大体記載されている。ただし、2023/04/29時点では日本語訳が無い。

環境情報

Personal Environment(Version 11.18.1 (Build 37884))
Service Studio(Version 11.54.5)

動作確認にはAndroidを利用。

実装方法

動画撮影

画面にCameraPluginのRecordVideo Widgetを配置する。
OnClick、OnError Eventはそれぞれ必須なのでハンドラを指定する。
image.png

なお、他にも、(RecordVideo Widgetが内部で呼んでいる)RecordVideo Actionを直接呼ぶ方法もある。

OnClick Handler

EventはMediaResultという型のデータを渡してくる。
そこで、同じ型のLocal Variableを用意しておいて、ハンドラで保存しておく。
image.png

OnError Handler

Eventは、ErrorCodeとErrorMessageを属性に持つStructureを渡してくる。
MessageでErrorMessageを表示するなり、ログに出すなりする。

データの保存先

結果のMediaResultのURIパラメータを見ると
 /<App Identifier>/cache/
を含むパスなので、これは一時キャッシュと思われる。

File Pluginでファイルを保存するパスで以前調べた、端末内部の一時保存領域のパスに見える。後ほど、File Pluginでアクセスする実験をしてみよう。

ドキュメントにも

Beware that video files stored in the cache are deleted when the app closes. When setting the URI parameter to a video file stored in the cache, beware that the video you're trying to play may have been already deleted.

とあるのでキャッシュであっていそう。そしてアプリを閉じるときに削除されるようだ。

動画再生

画面にCameraPluginのPlayVideo Widgetを配置する。撮影したばかりの動画と端末のギャラリーに保存された動画が対象。
Input ParameterのURIは必須なので撮影したい動画のURIを指定する。RecordVideoで撮影したものであれば、OnClickに渡ってくるMediaResult.URI属性を設定すればよい。
OnError Eventは必須なのでハンドラを指定する。
image.png

なお、他にも、(PlayVideo Widgetが内部で呼んでいる)PlayVideo Actionを直接呼ぶ方法もある。

OnError Handlerについては、動画撮影の場合と同様に。

Metadata

RecordVideoのInput Parameter IncludeMetadataにTrueを渡すと(デフォルトはFalse)、以下のメタデータも返してくれるようになる。Durationの単位はおそらく秒。
image.png

PWAについて

このバージョンでは未対応。
撮影を行うRecordVideo Actionで、以下の通りPWAでは撮影をせずに処理を終了するロジックが入っている。
image.png

PWAでも同じロジックが流れる可能性があるなら、CheckCameraPluginのIsPWA Output Parameterなどで分岐させ、動画撮影ロジックが流れないようにしたほうがいいだろう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0