2012-01-05 78 views
1

我已经创建了一个简单的基于gstreamer的python音频应用程序,它带有一个GTK + GUI,用于从XML列表中选择和播放webstream。然后,我将PC扬声器输出连接到带有大型扬声器和旧音响的旧式立体声接收机的输入端,我有一个相当不错的音响系统,可以在我大部分家中听到。为python应用程序创建Web界面的最佳策略是什么?

现在我想添加一个web用户界面来远程控制从计算机以外的房间的应用程序,但到目前为止,我所有的尝试都是徒劳的。

特别是我想知道是否可以创建一种像GTK GUI那样的信号来运行改变gstreamer参数的方法。

还是有更现实/可行的策略?

在此先感谢您的帮助!

+0

我会做它的方式...创建控制你的GTK应用程序的相关控制的'xmlrpc'功能;在与GTK应用程序相同的服务器上托管它。仅供参考,'web2py'在'xmlrpc'服务方面非常出色。创建另一个向“xmlrpc”服务发送命令的Web客户端;使用你喜欢的任何东西来创建它。从Web客户端直接操作GTK应用程序听起来很复杂。我的答案假设你有一些网络开发经验 – 2012-01-05 18:54:45

回答

1

最快和最简单的方法可能会使用cgi-scripts。如果你想要更复杂的方法,你可以考虑使用像django,turbogears或类似的网络框架。

+0

谢谢唐问题! – user1106979 2012-01-13 00:48:45

0

我会建议使用一个较轻的纯Python Web服务器选项,并且可以编写独立的WSGI应用程序或使用微框架。

GEVENT将是一个不错的选择:http://www.gevent.org/servers.html

下面是使用GEVENT一个WSGI应用的实现: https://bitbucket.org/denis/gevent/src/tip/examples/wsgiserver.py#cl-4

中的微架构,我建议使用瓶。

+0

嗨不安定的头!感谢你的回答。我希望能在未来尝试一下! – user1106979 2012-01-13 00:48:16

3

你可以使用Bottle,一个非常简单的微型网络框架。

瓶是Python的一个快速,简单,重量轻WSGI科技Web框架。它作为一个单独的文件模块分发,除了Python标准库之外没有任何依赖关系。

世界,你好:

from bottle import route, run 

@route('/hello/:name') 
def index(name='World'): 
    return '<b>Hello %s!</b>' % name 

run(host='localhost', port=8080) 
+0

您好夏克拉,我介绍给瓶子。它正是我想要的,但是我只能从运行它的同一台机器访问服务器。当我从同一网络上的另一台计算机尝试时,我得到一个无法访问主机的错误。这与以下事实一致:当从相同主机端口8080探测到似乎打开但来自另一台机器的网络扫描器说端口已关闭。这可能是一个网络配置问题,但我不知道Bottle是否会导致它。谢谢。 – user1106979 2012-01-12 21:43:59

+0

你在'0.0.0.0'上服务吗?如果你使用'localhost'或'127.0.0.1',它只能在本地使用。看看http://bottlepy.org/docs/dev/tutorial.html#deployment – charlax 2012-01-12 22:04:01

+0

我有多愚蠢!再次感谢Charlax!它像一个魅力一样工作! – user1106979 2012-01-13 00:47:15

相关问题