メインコンテンツへスキップ

onCameraStatusChange()

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

概要

onCameraStatusChange()は、カメラ許可リクエスト中に変更が発生したときに呼び出されます。

ステータス、および該当する場合は、新たに利用可能なデータへの参照として呼び出されます。 典型的な状態フローは次のようになります。

requesting -> hasStream -> hasVideo

パラメータ

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

status パラメーターには、以下の状態があります。

状態説明
requesting'requesting'では、ブラウザがカメラを開き、該当する場合はユーザの許可を確認します。 この状態では、カメラの権限を許可するようにユーザーにプロンプトを表示することが適切です。
hasStreamユーザーの権限が付与され、カメラが正常に開かれると、 ステータスが 'hasStream' に切り替わり、権限に関するユーザーのプロンプトはすべて削除できます。
hasVideoカメラのフレームデータが処理可能な状態になると、ステータスが 'hasVideo'に切り替わり、カメラフィードの表示が開始できるようになります。
failedカメラフィードのオープンに失敗した場合、ステータスは '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()
}
},
})