私の小さな Flash アプリでは、ユーザーがいつカメラへのアクセスを許可したかを知る必要があります。これが発生したかどうかを確認する文書化された方法は、次のようにカメラの「ミュート解除」イベントをリッスンすることです。
private function handleCameraStatus(event:StatusEvent):void {
try {
_logger.log("Camera status event {code:" + event.code + ", type:" + event.type + "}");
switch (event.code) {
case "Camera.Muted":
_eventHandler.raiseError("Camera became unavailable");
break;
case "Camera.Unmuted":
_eventHandler.raiseEvent("onUserMediaRetrieved", _mic, _cam);
}
} catch (e:Error) {
_eventHandler.raiseError("Error handling connection status", e);
}
}
これは、Adobe のサイトのいくつかの場所 (たとえば、ここやここ) で推奨されている方法です。
このアプローチの問題は、ユーザーがサイトを信頼済みサイトのリストに追加した場合 (Adobe Flash Player 設定ダイアログ ボックスで [許可] をクリックしなくてもアクセスが自動的に許可されるようにするため)、Camera.Unmuted
イベントが決して発生しないことです。解雇されます。(少なくとも、これはいくつかの異なるサイトでの私のテストが示していることです。)これによりCamera.Unmuted
、実際にカメラにアクセスできるかどうかを判断する方法として、音声を聞くことは多かれ少なかれ役に立たなくなります。
これを行う方法について他に提案はありますか?