我正在尝试在树莓派上使用omxplayer循环播放视频。视频循环播放时,我想让套接字监听来自另一个源(tcp)的命令/数据。收到命令/数据后,我希望omxplayer python脚本退出循环并继续执行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")
将字符串发送到侦听套接字时,我得到的输出确实很奇怪。理想情况下,视频循环将连续播放,直到收到特定字符串,然后脚本才能继续播放。