本文へスキップ

onCameraStatusChange()

onCameraStatusChange: ({ status, stream, video, config })`.

説明

onCameraStatusChange()`は、カメラの許可要求中に変更が発生したときに呼び出される。

ステータスと、該当する場合は新しく利用可能になったデータへの参照が呼び出される。 典型的なステータスの流れはこうだ:

requesting->hasStream->hasVideo`.

パラメータ

パラメータ説明
ステータス'requesting', 'hasStream', 'hasVideo', 'failed' ] のいずれかである。
stream: [オプション]。ステータスが 'hasStream' の場合、カメラフィードに関連付けられた MediaStream
ビデオを見る:[オプション]ステータスが hasVideo の場合、ストリームを表示する video DOM 要素。
コンフィグステータスが 'requesting' の場合、XR8.run() に渡された設定パラメータ。

パラメータ status には以下の状態がある:

説明
リクエストrequest'`では、ブラウザはカメラを開き、該当する場合はユーザーの許可をチェックする。 この状態では、ユーザーにカメラの許可を求めるプロンプトを表示するのが適切です。
ハズストリームユーザの許可が与えられ、カメラが正常に開かれると、ステータスは 'hasStream' に切り替わり、許可に関するユーザによるプロンプトはすべて解除されます。
ハズビデオカメラのフレームデータが処理に利用できるようになると、ステータスは 'hasVideo' に切り替わり、カメラのフィードを表示できるようになります。
失敗したカメラのフィードが開けなかった場合、ステータスは 'failed' となります。 この場合、ユーザーがパーミッションを拒否している可能性があるので、パーミッションの再有効化を支援することが望ましい。

XR8.addCameraPipelineModule({
name: 'camerastartupmodule',
onCameraStatusChange: ({status}) {
if (status == 'requesting') {
myApplication.showCameraPermissionsPrompt()
} else if (status == 'hasStream') {
myApplication.dismissCameraPermissionsPrompt()
} else if (status == 'hasVideo') {
myApplication.startMainApplictation()
} else if (status == 'failed') {
myApplication.promptUserToChangeBrowserSettings()
}.
},
})