Я пытаюсь воспроизвести видео в цикле, используя omxplayer на raspberry pi.Пока видео зацикливается, я хочу, чтобы сокет прослушивал команду / данные из другого источника (tcp).После получения команды / данных я бы хотел, чтобы скрипт python omxplayer вышел из цикла и продолжил работу с программой python.
До сих пор я пытался создать цикл в открытом сокете прослушивания,и как только команда / данные получены, прервите цикл, установив флаг, но это не работает.Я полагаю, что я должен использовать asyncio и async, ожидаю, чтобы это заработало ...
def interactive(player):
# INTERACTIVE SCENES
player.load(VIDEO_PATH_LOOP)
player.mute()
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((LISTENER_HOST, LISTENER_PORT))
s.listen()
conn, addr = s.accept()
with conn:
flag = 0
# LOOP
while(flag == 0):
data = conn.recv(1024)
if not data:
continue
conn.sendall(data)
print("data is: " + data.decode())
if data:
flag = 1
time.sleep(20)
player.set_position(0)
s.listen()
conn, addr = s.accept()
print("out of listen mode")
Я получаю действительно странные результаты, когда посылаю строку в гнездо для прослушивания ... В идеале, видео цикл будет непрерывноиграть до тех пор, пока не будет получена конкретная строка, тогда сценарий будет двигаться дальше.