Вы можете записать вкладку в Firefox следующим образом:
var constraints = { video: { mediaSource: "browser" } };
navigator.mediaDevices.getUserMedia(constraints)
.then(stream => video.srcObject = stream)
.catch(log);
var offset = () => video.srcObject.getVideoTracks()[0].applyConstraints({
mediaSource: "browser",
scrollWithPage: false,
viewportOffsetX: x.value,
viewportOffsetY: y.value
})
.catch(log);
var log = msg => div.innerHTML += "<br>" + msg;
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
<span title="This is an experimental API that should not be used in production code."><i class="icon-beaker"> </i></span> <strong>This is an experimental technology</strong><br>Because this technology's specification has not stabilized, check the compatibility table for the proper browsers versions. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the spec changes.</p>
Capture offset:<br>
<input id="x" min="0" max="500" value="0" oninput="offset()" type="range">
<input id="y" min="0" max="500" value="0" oninput="offset()" type="range"><br>
<video id="video" height="120" width="320" autoplay></video><br>
<div id="div"></div><br>
Обратите внимание, что для того, чтобы этот фрагмент работал здесь, в браузере, вам сначала нужно https://stackoverflow.com/questions/35338487/record-the-firefox-tab-as-a-video-like-screencastify-on-chrome/.
А затем, по соображениям безопасности, вы должны добавить ,stacksnippets.net
к списку сайтов в media.getusermedia.screensharing.allowed_domains
в разделе about:config, чтобы это работало.
Наконец, вы также должны установить media.navigator.permission.disabled
на true
в about:config, так как Firefox не реализует средство выбора вкладок.
Ничего из этого не было бы необходимо в расширении.
В расширении вы должны использовать ограничение browserWindow
для передачи идентификатора внешнего окна вкладки, которую вы хотите захватить.
Предупреждение. После этого вы можете удалить ,stacksnippets.net
и media.navigator.permission.disabled
из-за неотъемлемых угроз безопасности. Сообщения SO потенциально могут украсть информацию о вашем банковском счете таким образом, создавая фреймы общих банковских URL-адресов, на которые вы можете войти, чтобы только вы (а теперь и они!) Не шутка!
person
jib
schedule
16.04.2016