如何在套接字上侦听并使用omxplayer并行播放视频文件?

时间:2019-05-18 13:33:55

标签: python sockets raspberry-pi3 omxplayer

我正在尝试在树莓派上使用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")

将字符串发送到侦听套接字时,我得到的输出确实很奇怪。理想情况下,视频循环将连续播放,直到收到特定字符串,然后脚本才能继续播放。

0 个答案:

没有答案