2012-01-23 47 views

Trả lời

6

Đí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ứ.

4

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 !? ... 
    } 
} 
1

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