0

Я хотел бы записать вкладку браузера Firefox через расширение браузера, например, Screencastify расширение делает в хром. О записи Сессия расширения chrome, chrome.tabCapture API используется для получения потока текущей активной вкладки и для записи потока RecordRTC.js Web-RTC Experiment. Как мудрый, есть ли какой-либо API в Mozilla Firefox, чтобы получить поток вкладки в браузере Firefox.Запишите вкладку Firefox как видео, например screencastify on chrome.

P.S: Я прошу записать вкладку firefox, не записывая экран или окно или через камеру.

ответ

2

Есть several privileged apis, которые позволяют захватывать части окон или элементов xul в контексте холста. Затем холст может быть captured в поток мультимедиа.

+0

Это может быть сделано, если записанный элемент является элементом холста, как бы я сделал для всей html-части в документе. Поправьте меня, если я ошибаюсь. Было бы лучше, если бы был пример – Muthu

+0

. Мой ответ состоит из двух предложений, кажется, что вы проигнорировали первый. – the8472

+0

Я пробовал таким образом, и я получаю canvasCaptureMediaStream, и, пытаясь записать, он записывает как одно изображение на время, пока я не остановлю запись. Движения мыши и операции внутри документа не записываются – Muthu

0

Вы можете записать вкладку в 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>

Обратите внимание, что для этого фрагмента здесь работать в браузере, вы сначала должны view this page in https.

И затем, по соображениям безопасности, вы должны добавить ,stacksnippets.net к списку сайтов в media.getusermedia.screensharing.allowed_domains под о: конфигурации, чтобы это работало.

Наконец, вы также должны установить media.navigator.permission.disabled в true в о: конфигурации поскольку Firefox не реализует Tab Chooser.

Ничего из этого не потребуется в расширении.

В расширении вы должны использовать ограничение browserWindow для передачи во внешнем идентификаторе окна вкладки, которую вы хотите захватить.

Предупреждение: Вы можете удалить ,stacksnippets.net и media.navigator.permission.disabled впоследствии, из-за рисков, присущих безопасности. Сообщения SO могут потенциально украсть вашу информацию о банковском счете таким образом, путем iframing общих банковских URL-адресов, к которым вы можете войти, только для вас (и теперь их!), Чтобы увидеть, эффективно заканчивая ограничения кросс-происшествия. Без шуток!