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
Post a Comment