How to get webcam video feed in a firefox addon? -


i developing addon requirement capture webcam video. did testing , noticed navigator.mediadevices.getusermedia() available within panel , hence have written following content script panel webcam video feed addon.

var mediastream; var mediarecorder;  // instance of mediadevices object use. navigator.mediadevices = navigator.mediadevices || ((navigator.mozgetusermedia || navigator.webkitgetusermedia) ? {     getusermedia: function(c) {     return new promise(function(y, n) {      (navigator.mozgetusermedia ||       navigator.webkitgetusermedia).call(navigator, c, y, n);     });   } } : null);  function startvideocapture(width, height, framerate) {   // check if browser supports video recording   if (!navigator.mediadevices) {     return;   }    // lets initialize video settings use our video recording session   var constraints = { audio: false, video: { width: 640, height: 320, framerate: 25 } };    // make request start video capture       navigator.mediadevices.getusermedia(constraints)   .then(function(stream) {     // lets initialize timestamp video     var date = new date();     var milliseconds = "000" + date.getmilliseconds();     var timestamp = date.tolocaleformat("%y-%m-%d %h:%m:%s.") + milliseconds.substr(-3);      // lets make stream globally available able control later.     mediastream = stream;      // lets display available stream in video element available inside panel.     var video = document.queryselector('video');     video.src = window.url.createobjecturl(stream);     video.onloadedmetadata = function(e) {         video.play();     };      // not here show video screen. lets media recorder store video memory     mediarecorder = new mediarecorder(stream);      // lets decide recorded video once done recording     mediarecorder.ondataavailable = function(evt) {         // recorded video available blob in evt.data object.          // way use through filereader object         var reader = new filereader();          // lets decide going data read blob         reader.onloadend = function() {             // create video object containing timestamp , binary video string             var videoobject = new object();             videoobject.timestamp = timestamp;             videoobject.video = reader.result;              // send video main script safe keeping             self.port.emit("videoavailable", videoobject);         }          // instruct filereader start reading blob         reader.readasbinarystring(evt.data);     }      // lets start video capture     mediarecorder.start();   })   .catch(function(err) {     self.port.emit("videoerror", err);   }); }  function stopvideocapure(){   if (mediarecorder !== undefined && mediarecorder !== null) {     mediarecorder.stop();   }    if (mediastream !== undefined && mediastream !== null) {     mediastream.stop();   } }  function updatevideosettings(settings){     stopvideocapture();     startvideocapture(settings.width, settings.height, settings.framerate); }   self.port.on("videopreferenceupdated", updatevideosettings);  // start video capture startvideocapture(self.options.width, self.options.height, self.options.framerate); 

now problem here code working when webpage i.e. if save open panel.html file directly in browser proper adjustment of self.options , self.port lines. when using code in contentscript panel in addon, getting following error

javascript error: resource:///modules/webrtcui.jsm, line 186: typeerror: stringbundle undefined 

now error inbuilt jsm module in firefox. there way can past error or other way webcam video feed in addon?

thanks


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -