2012-01-23 14 views
8

मैं कैसे निर्धारित कर सकता हूं कि फ्लैश में कैमरे और माइक तक पहुंच से इनकार किया गया था या नहीं?एएस 3 निर्धारित करता है कि कैमरा एक्सेस अस्वीकार कर दिया गया था

मैं कैमरा और माइक प्राप्त कर सकता हूं, लेकिन मुझे यह जानने की जरूरत है कि उपयोगकर्ता ने पहुंच से इंकार कर दिया है या नहीं।

उत्तर

6

एक स्थिति घटना श्रोता संलग्न और देखें कि क्या कैमरा मौन है, डॉक्स देखें:

भेजा जब एक कैमरा में अपनी स्थिति की रिपोर्ट। कैमरे तक पहुंचने से पहले, रनटाइम उपयोगकर्ताओं को को अनुमति देने या उनके कैमरे तक पहुंच से इनकार करने के लिए एक गोपनीयता संवाद बॉक्स प्रदर्शित करता है। यदि कोड प्रॉपर्टी का मान "कैमरा। म्यूट" है, तो उपयोगकर्ता ने SWF फ़ाइल को उपयोगकर्ता के कैमरे तक पहुंचने से इनकार कर दिया है। यदि कोड प्रॉपर्टी का मान "कैमरा। अनम्यूट" है, तो उपयोगकर्ता ने SWF फ़ाइल को उपयोगकर्ता के कैमरे तक पहुंच की अनुमति दी है। http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#event:status

flash.media.Microphone भी एक ही बात है।

4

यदि आप सेटिंग पैनल (राइट-क्लिक) में "याद रखें" सेट करते हैं, तो पॉपअप नहीं होगा और इसलिए स्थिति परिवर्तन की कोई सूचना नहीं होगी।

तो, आदेश अगर पता करने के लिए अपने कैमरे की अनुमति दी है (और माइक्रोफोन अगर जरूरत), आप जाँच कर सकते हैं muted attribut:

var camera:Camera = Camera.getCamera(); 
if (camera.muted) 
{ 
    camera.addEventListener(StatusEvent.STATUS, handleCameraStatus, false, 0, true); 
} 
else 
{ 
    camAllowed = true; 
    handleWebcam(); 
} 

और अपनी स्थिति हैंडलर

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; 
     } 
    } 
} 

में आप (यदि आवश्यक हो तो माइक्रोफ़ोन के लिए भी ऐसा करें)

तब, जब आप

को संभालने के लिए अपनी विधि को कॉल करते हैं
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

एक समस्या भी है, जब उपयोगकर्ता ने वैश्विक फ़्लैश प्लेयर सेटिंग्स के माध्यम से हमेशा इस साइट के लिए कैमरा पहुंच से इंकार कर दिया है। उस स्थिति में camera.muted === true लेकिन कोई सुरक्षा संवाद नहीं है और इसलिए StatusEvent नहीं है। इसका पता लगाने के कुछ तरीके हैं, यहां: Detecting user's camera settings

संबंधित मुद्दे