This property indicates whether ORTC/WebRTC is supported in the browser. Its value shall be resolved right after an Application is constructed and stay unchanged. When this property is true, the model layer will automatically choose to use ORTC/WebRTC to carry out media (audio/video) communication.
Indicates whether the user has granted permission to the app to use the camera. This is relevant only for pluginless scenarios. For plugin this just needs to return true.
Indicates whether the user has granted permission to the app to use the microphone. This is relevant only for pluginless scenarios. For plugin this just needs to return true.
This property indicates whether the plugin is installed in the system. Returns:
Please note that the value of this property depends on whether the plugin object is loaded or not, which has a 'lazy-loading' by nature. It means the plugin object is not loaded unless requested, either by a get on any media related property (e.g., isPluginInstalled.get, or DevicesManager.cameras.subscribe), or by starting/accepting an audio/video call. When plugin object is not loaded, this property will stay undefined.
The recommended usage pattern is:
Here are some sample code:
function handleAVCall(actualAVCall) {
var cap = app.devicesManager.mediaCapabilities;
if (cap.isBrowserMediaSupported() || cap.isPluginInstalled()) {
actualAVCall();
} else {
cap.installedVersion.get().finally(function () {
var p = cap.isPluginInstalled;
var r = p.reason;
if (p()) {
if (r == 'CompatiblePluginInstalled') {
// optional:
// tell user which version is detected: cap.installedVersion()
// recommend user to upgrade plugin to latest
// using cap.pluginDownloadLinks('msi') etc.
}
actualAVCall();
} else {
if (r == 'ObsoletePluginInstalled') {
// tell user which version is detected: cap.installedVersion()
} else if (r == 'NoPluginInstalled') {
// tell user no plugin is detected
}
// recommend user to upgrade plugin to latest
// using cap.pluginDownloadLinks('msi') etc.
}
});
}
}
A collection of URLs to download the latest plugin.
The download URLs can be specified as Application level settings:
var app = new Application({
settings: {
plugin.download.msi: 'http://cdn-url/plugin.msi',
plugin.download.pkg: 'http://cdn-url/plugin.pkg',
plugin.download.dmg: 'http://cdn-url/plugin.dmg'
});
If these settings are not specified, default download links are provided by the WebSDK. In that situation, similar to the isPluginInstalled property, the default links will only be added to the collection when the application triggers the loading of the plugin object; otherwise, this collection will stay empty.
This property stores the version number of the installed plugin. It bears the same 'lazy-loading' nature as the isPluginInstalled property, so it is recommended that these two properties be used together to provide better user experience.