使用django控制python程序

时间:2014-04-12 12:47:33

标签: python django audio

HeJ小鼠, 我在python中编写了一个像winamp这样的小音乐播放器。它有一个GUI(歌名,播放/暂停,下一个,上一个,时间进度条),我可以打开一个文件夹,音频文件一个接一个地播放。

现在我真的想通过托管在同一台机器上的网络服务器添加一个遥控器。我的想法是在网页的GUI中使用相同的按钮和输出(也是时间进度条)。

场景:我在计算机上启动音乐播放器(它还会自动启动网络服务器),我选择带有歌曲的文件夹,然后通过点击桌面上的GUI跳过两首歌曲。现在我决定坐在沙发上看书。过了一会儿,音乐让我烦恼,我想暂停一下。我拿起手机,访问网页并点按暂停按钮。音乐停止,桌面GUI也会响应(停止时间进度条并显示播放按钮而不是暂停按钮)。

我知道如何创建一个django服务器以及如何运行它,但我不知道如何让django视图与我桌面上的音乐播放器进行通信。

我用Google搜索并阅读了一些内容,但我不知道该走哪条路:

  • 信号:不知道这是否有意义,因为这两个过程是完全分离的
  • 通过数据库进行通信,将音乐播放器的状态保存在数据库行中,并且每当按下按钮时让两个进程都更新条目:不喜欢这个想法,因为我希望这两个进程在没有解释器的情况下进行通信
  • 也许使用UDP / TCP:但为什么,这些进程在同一台机器上

如果我现在必须编程,我会选择数据库方法还是还有其他任何我没有偶然发现的解决方案?我要用烧瓶代替django吗?

如果这是一个常见的问题和任务,我很抱歉重复,但我找不到任何说明如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

您正在寻找的是IPC(进程间通信)。我的直觉是让音乐播放器打开一个套接字,绑定到一个端口,并监听命令。

然后在Django视图中打开与播放器的套接字连接,发送命令并向浏览器返回响应。

我想要与浏览器进行完全双向通信,然后您还需要一个进程等待音乐播放器的输出并通过Web套接字连接将其发送回浏览器。 standard socket tutorial is very handy。{{3}}。