getUserMedia — расширение потока глубины

#javascript #html #getusermedia #mediastream

#javascript #HTML #getusermedia #mediastream

Вопрос:

Как мне получить доступ к свойствам дорожек потока глубины через getUserMedia() ? Свойства, которые я пытаюсь получить, взяты principalPointX, principalPointY, focalLengthX, focalLengthY из дорожек мультимедиа

В документации говорится, что мне нужно установить depth значение true, поэтому, когда я это делаю, я получаю ошибку, которая вынуждает меня установить video :

(index):20 Uncaught TypeError: Failed to execute 'getUserMedia' on 'Navigator': At least one of audio and video must be requested

Когда я пытаюсь сделать это:

 navigator.mediaDevices.getUserMedia({video: true, depth: true})
   .then(stream => {

   video.srcObject = stream;
   console.log(stream);

}).catch(console.error)
  

stream не возвращает ни одного из свойств, которые я пытаюсь получить, подобных principalPointX . Буду признателен за любую помощь.

Комментарии:

1. Эти свойства были удалены из спецификаций: w3c.github.io/mediacapture-depth/#mediatracksettings-dictionary Кроме того, хотя я не могу протестировать, потому что у меня самого нет доступа к камере глубины, я думаю, что было бы в stream.getVideoTracks()[0].getSettings() том, чтобы вы извлекли это перечисление (которое должно быть только videoKind: 'depth' в том случае, если я правильно понимаю спецификации.

2. Означает ли это, что эти свойства, которые я не смогу использовать, поскольку они устарели?

3. Ну, по крайней мере, Chromium просто удалил это bugs.chromium.org/p/chromium/issues/detail?id=939722 теперь у вас вообще есть доступ к такому DepthTrack? В конце этой проблемы говорится, что она все еще находится под флагом запуска.

4. Я надеялся создать свою собственную дорожку глубины с камеры моего телефона через getUserMedia() , а затем получить доступ к дорожке глубины, которая в идеале имела бы такие свойства, как focalLengthX . Возможно, это работает не так. Я попробовал stream.getVideoTracks()[0].getSettings() и stream.getTracks()[0].getSettings() , и оба возвращают объект, подобный: {aspectRatio: 1.33333333333 deviceId: "2fcbe5cbbbf21e05a5c63602f63f7aa367e76ad5164de04f323be2d" frameRate: 30.0000305175 groupId: "1597b58064afe71b4204d0f41b6f5b28fb79bb11d098030cd744d3" height: 480 resizeMode: "none" width: 640}