2013-06-27 1 views
7

В браузере WebRTC в Firefox 22. Был некоторый шум в эфире. Это для тех, кто знает о разработке Firefox: есть ли какая-либо поддержка в Firefox для настольных компьютеров захватить todate?Firefox 22 mozGetUserMedia с использованием «экрана» в качестве источника устройства

Технология существует для Chrome 26+, которая обеспечивает экспериментальную поддержку захвата экрана (используя «экран» в качестве источника устройства); код (сниппет) для осуществления данной цели является:

// select any supported getUserMedia function 
    navigator.getMedia = (navigator.getUserMedia || 
         navigator.webkitGetUserMedia || 
         navigator.mozGetUserMedia || 
         navigator.msGetUserMedia); 

    // if getUserMedia is not supported, do nothing 
    if(!navigator.getMedia) return; 

    // request for user media 
    navigator.getMedia(
    { 
    video : { 
     mandatory : { 
      // request 'screen' as a source media 
      chromeMediaSource : 'screen' 
     } 
    } 
    }, 

    // success 
    function(localMediaStream) 
    { 
    // process local media stream... 
    }, 

    // failure 
    function(error) 
    { 
    // error handling 
    }); 

Глядя на W3C документы, объекты MediaSourceConstraints, MediaTrackConstraints, MediaTrackConstraintsSet еще не были стандартизированы. Просто может оказаться, что API слишком туманный, чтобы эта функция появилась в производстве Firefox. Было бы хорошо знать текущее состояние поддержки.

ответ

4

Это стало возможным в Firefox, однако из-за соображений безопасности, поддержка скрывается за некоторыми предпочтениями. В частности, предпочтения media.getusermedia.* ниже about:config.

Этот comment on a Mozilla bug report иллюстрирует некоторые из этих проблем:

Теперь, когда мы переработан <input type="file">, чтобы не сделать полный путь на экране, все лучше. У нас все еще есть проблемы с такими вещами, как рисование изображений с перекрестными изображениями и .

Даже с пользовательским входом я бы побеспокоил о таких ситуациях, как «пользователь загружает страницу приложения A на одной вкладке и странице приложения B на другой вкладке, страница B запрашивает разрешение на страницу с общими страницами A, которая выглядит нормально, пользователь принимает, то приложение свопы ФБ или Gmail или любой другой в странице а и захватывает содержимое.

Хотя media.getusermedia.screensharing.enabled в настоящее время true по умолчанию в канале выпуска, только те домены в белый список под media.getusermedia.screensharing.allowed_domains фактически разрешено используйте его.

Если ваш домен находится в разрешенном списке, вы можете используйте следующие ключи в свойстве video.

video: { 
    mozMediaSource: "screen", 
    mediaSource: "screen" 
} 

Mozilla проводит getUserMedia Test Page, на домене, в белый список на Firefox Nightly и Firefox Developer Edition. Если вы используете одну из этих версий Firefox, вы можете увидеть ее в действии. В качестве альтернативы вы можете добавить домен в белый список под номером about:config и использовать его в бета-версиях.

+0

Спасибо! Я знал, что предыдущий ответ был бы устаревшим в какой-то момент. Спасибо, что ответили. – knight

+0

Как можно получить диалог выбора окна? Если я обойду разрешения, этот диалог не отображается. Если я не обойду их, getUserMedia полностью не работает для вызовов окна/экрана, но все же работает для камер. – Brad

+0

@Brad Что вы имеете в виду, обходя разрешения? –