आप आशा है कि हो सकता है कि यह अनुमति एपीआई से सुलभ हो जाएगा, लेकिन यह: https://developer.mozilla.org/en-US/docs/WebRTC
यहाँ एक उदाहरण है नहीं है :(
शायद इस सुविधा में यह बाकी की तरह काम कर सकता है:
navigator.permissions.query(
// {name: 'video'} <-- doesn't work
// {name: 'audio'} <-- doesn't work
{name: 'geolocation'}
// {name: 'notifications'}
// {name: 'midi', sysex: false}
// {name: 'midi', sysex: true}
// {name: 'push', userVisibleOnly: true}
// {name: 'push'} // without userVisibleOnly isn't supported in chrome M45, yet
).then(function(permissionStatus){
console.log(permissionStatus.state); // granted, denied, prompt
permissionStatus.onchange = function(){
console.log("Permission changed to " + this.state);
}
})
एकमात्र तरीका जिसे मैं इसे संभव देखता हूं, यदि आप अनुमति के लिए पूछते समय स्थानीय स्टोरेज में एक कुंजी/मूल्य वस्तु के साथ स्वयं को ट्रैक करते हैं।
दुर्भाग्य से यह आपको सूचित नहीं करता है जब यह
// initialization
if(localStorage.getItem("voice_access") === null){
// just assume it is prompt
localStorage.setItem("voice_access", "prompt");
}
// Then somewhere
navigator.getUserMedia({audio: true}, function(e){
// http://stackoverflow.com/q/15993581/1008999
//
// In chrome, If your app is running from SSL (https://),
// this permission will be persistent.
// That is, users won't have to grant/deny access every time.
localStorage.setItem("voice_access", "granted");
}, function(err){
if(err.name == "PermissionDismissedError"){
localStorage.setItem("voice_access", "prompt");
}
if(err.name == "PermissionDeniedError"){
localStorage.setItem("voice_access", "denied");
}
});
आप अतिरिक्त प्रयास और इसके बाद के संस्करण इस कोड के साथ एक अच्छी छोटी आवरण का निर्माण और विस्तार कर सकता है बदल दिया गया है/करने की अनुमति एपीआई की जगह अधिक enum नामों को संभाल लें और अन्य टैब को बदलने पर broadcast एपीआई बनाएं। लेकिन यह इतना जटिल क्यों बनाते हैं ...? स्थानीय स्टोरेज 100% भरोसेमंद नहीं हो सकता है। इसे किसी भी समय अनुमति और भंडारण के साथ कहीं भी बदला जा सकता है
वह पूछताछ कर रहा है कि अनुमति राज्य कैसे प्राप्त करें, इसका मतलब है कि उपयोगकर्ता मीडिया स्ट्रीम – Endless
प्राप्त करने के बिना आप स्क्रीन क्षेत्र के बाहर मीडिया स्ट्रीम बना सकते हैं, तो आपके पास आपकी जांच और उपयोगकर्ता को पता/दिमाग नहीं है। एचटीएमएल 5 गेम के लिए बैक बफर कैनवास की तरह। – Zezura