Web APIの利用方法
このチュートリアルでは、サンプルアプリケーションを通して、デバイスカメラでの写真撮影ができる MediaDevices API の使用方法を説明します。
Electron TODOアプリの作成
まず、Monacaテンプレートを使用してアプリケーションを作成しましょう。
Monacaダッシュボードから、 新しいプロジェクトを作る → サンプルアプリケーション に移動します。 次に、テンプレートリストから Electron TODOアプリ を選択し、プロジェクト名と説明を入力して、プロジェクトを作成します。

アプリケーション機能
このサンプルアプリケーションは、ToDoリストを作成および管理できます。 ユーザーは、既存の写真をアップロードするか、写真を撮影して追加できます。リストはローカルストレージに保存されます。
アプリケーションを開くと、ローカルストレージに保存されているアイテムが表示されます。

新しいアイテムを作成するには、アプリケーションの右側にある + new ボタンをクリックします。
新しいモーダルダイアログが表示されます。 camera ボタンをクリックして、ToDoアイテムの入力、既存の写真のアップロードまたは新しい写真の撮影を行うことができます。

camera ボタンをクリックすると、カメラのビューを持つ別のモーダルダイアログが表示されます。
Capture ボタンを押すと、ボックス内のレンダリングがキャプチャされ、画像として保存されます。

HTMLの説明
HTMLの説明カメラモーダル
次のコードは、カメラモーダルについてです。
camera ボタンをクリックすると、このモーダルが表示されます。モーダルには、3つのボタンrotate、capture、 cancel があります。
rotate ボタンは、デバイスが前面カメラと背面カメラの切り替えをサポートしている場合にのみ表示されます。
video要素(id=video-container)は、内蔵のカメラからの映像をストリーミングするために使用されています。
JavaScriptの説明
グローバル変数宣言
カメラ機能に関する重要な変数を簡単に見てみましょう。
isFrontCamera: フロントカメラとリアカメラを切り替えるために使用されます。FRONT_CAMERA: mediaDevices APIの facingMode Enum のフロントカメラ値を保存するために使用されます。REAR_CAMERA: mediaDevices APIの facingMode Enum の背面カメラ値を保存するために使用されます。
mediaDevices API サポートの確認
次のコードは、(1)mediaDevices APIがサポートされているかどうかを確認し、
(2)デバイスがAndroidでrearカメラをデフォルトとして使用している場合は rotate ボタンをオンにします。
カメラのオン/オフ
MediaStream を生成するメディア入力の使用許可をユーザーに求めるために、getUserMedia()を使用します。
ストリームには、ビデオトラック(カメラ、ビデオ録画デバイス、画面共有サービスなど)、オーディオトラック、他のトラックタイプを含めることができます。詳細については、こちらの 公式ドキュメント を参照してください。
この関数は Promise を返し、 MediaStreamConstraints オブジェクトをパラメーターとして受け入れます。
次のコードでは、幅と高さを 250 ピクセルに指定し、指定された引数に基づいてカメラに面するモードを設定します。
カメラデバイスが正常に接続されると、 Media Stream オブジェクトが返され、video 要素に割り当てられます。
カメラをオンにするには、トラックに関連付けられているすべてのソースを停止する必要があります。
次の機能は、カメラを前面と背面に切り替えます。
写真を撮る
ビデオ ストリーム/トラックから写真を撮るには、まず canvas 幅と高さをvideoContainerと合わせます。
次に、すべてのトラックを停止し、最後のトラックを画像形式に変換します。
See Also:
最終更新
役に立ちましたか?