Может ли код javascript получать постоянно обновляемые переменные работающей программы python? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть программа python , которая отслеживает положение человека в комнате. Эта позиция сохраняется как переменная (« координаты ») и постоянно обновляется. Основываясь на этих координатах (x и y), я хотел бы, чтобы видеоплеер увеличивал и уменьшал масштаб. Так что, если кто-то находится в передней части комнаты, клип mov ie увеличивается. Когда он / она находится сзади, отснятый материал уменьшается.

Теперь проблема в том, что я не делаю этого. В python не найти хороших видеоплееров. Однако я вижу много хороших видеоплееров в javascript. Теперь мой вопрос: возможно ли, чтобы файл javascript каким-то образом «спросил» файл python, какое текущее значение переменной ? Есть обычный способ сделать это? Если это не так, я буду искать видеомодуль python, но мне очень нравится javascript ...

Заранее спасибо !!!

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Лично я знаю способ достижения этого - запись в файл или базу данных из python и выполнение Javascript вызова ajax обработчика python (или другого формата) скрипта на сервере , который вернет значения из файла, в который были записаны переменные.

Хотя использование видеоплеера в python3 было бы наилучшей практикой. Попробуйте заглянуть в pyglet или moviepy . Здесь - это сообщение, которое фокусируется на масштабировании и панорамировании с помощью пиглета.

Кроме того, вы можете использовать веб-сокеты (или селен) для управления js из самого python. Это должно помочь.

0 голосов
/ 04 августа 2020

Если предполагается, что это ванильный JavaScript, я бы предложил использовать сокеты и обновить поле с помощью события onMessage. Это будет означать, что сторона Python программы будет «проталкивать» информацию на сторону JavaScript, которая будет отображать только данные.

let yourSocket = new WebSocket("ws://whatever.source"); 
const yourField = document.getElementById("your_element_id");

yourSocket.onMessage = function(event) {
    yourField.innerHTML = event.data;
}

Замените whatever.source на источник вашего сообщения ( исходящий из python) и your_element_id с идентификатором элемента, который вы хотите заполнить данными.

Пожалуйста, обратитесь к https://javascript.info/websocket для части JS и для Python сбоку https://websockets.readthedocs.io/en/stable/intro.html..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...