Làm cách nào để xác định xem quyền truy cập vào máy ảnh và micrô có bị từ chối trong Flash không?as3 xác định xem truy cập máy ảnh đã bị từ chối
Tôi có thể lấy máy ảnh và micrô nhưng tôi cần biết liệu người dùng có bị từ chối truy cập hay không.
Làm cách nào để xác định xem quyền truy cập vào máy ảnh và micrô có bị từ chối trong Flash không?as3 xác định xem truy cập máy ảnh đã bị từ chối
Tôi có thể lấy máy ảnh và micrô nhưng tôi cần biết liệu người dùng có bị từ chối truy cập hay không.
Đính kèm một tình trạng nghe sự kiện và kiểm tra xem máy ảnh là tắt tiếng, xem tài liệu:
cử đến khi một camera báo cáo tình trạng của nó. Trước khi truy cập máy ảnh , thời gian chạy sẽ hiển thị hộp thoại Bảo mật để cho phép người dùng cho phép hoặc từ chối quyền truy cập vào máy ảnh của họ. Nếu giá trị của thuộc tính mã là "Camera.Muted", người dùng đã từ chối cho phép truy cập tệp SWF vào máy ảnh của người dùng. Nếu giá trị của thuộc tính mã là "Camera.Unmuted", người dùng đã cho phép truy cập tệp SWF vào máy ảnh của người dùng . http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#event:status
flash.media.Microphone cũng có cùng một thứ.
Nguyên nhân nếu bạn đặt "Nhớ" trong Bảng điều khiển Cài đặt (nhấp chuột phải), sẽ không có cửa sổ bật lên và do đó không có thông báo thay đổi trạng thái.
Vì vậy, để biết nếu máy ảnh của bạn được cho phép (và microphone nếu cần), bạn có thể kiểm tra muted
attribut:
var camera:Camera = Camera.getCamera();
if (camera.muted)
{
camera.addEventListener(StatusEvent.STATUS, handleCameraStatus, false, 0, true);
}
else
{
camAllowed = true;
handleWebcam();
}
và trong xử lý trạng thái của bạn
private function handleCameraStatus(e:StatusEvent):void
{
witch (e.code)
{
case 'Camera.Muted':
{
camAllowed = false;
trace("Camera muted");
break;
}
case 'Camera.Unmuted':
{
camAllowed = true;
trace("Camera unmuted");
handleWebcam();
break;
}
}
}
(bạn làm tương tự cho micrô nếu cần)
khi đó, khi bạn gọi phương thức của mình để xử lý
private function handleWebcam()
{
if (camAllowed && micAllowed)
{
// Do what you need when all is OK
}
else
{
// Either wait for the 2 status to switch to true, either you got a problem !? ...
}
}
Ngoài ra còn có vấn đề, khi người dùng từ chối truy cập máy ảnh cho trang web này mãi mãi thông qua cài đặt trình phát flash toàn cầu. Trong trường hợp đó camera.muted === true
nhưng không có hộp thoại bảo mật và do đó không có StatusEvent
. Có một số cách để phát hiện điều này, tại đây: Detecting user's camera settings