当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [Python]使用socket方式连接vlc提示connect refuse
帖子发表于 : 2010-12-07 0:42 
头像

注册: 2009-03-31 8:12
帖子: 24
送出感谢: 0 次
接收感谢: 1
最近正在尝试用python写一个小东西,其中一部分考虑到需要启动vlc(不能假定它可以替换为mplayer)并手动控制播放,查找到
http://www.videolan.org/doc/play-howto/ ... l#id501902
可以用vlc -I rc --rc-host=XXX:XX的方式启动socket连接,但是最后的代码始终无法通过,会提示
引用:
Traceback (most recent call last):
File "vlctest.py", line 15, in <module>
s.connect(('localhost', 8888))
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused

使用subprocess.Popen替代os.system错误相同。事实上我是先用subprocess启动vlc然后报错,考虑到可能是启动顺序问题,才改用os.system+time.sleep的……
终端可以确认发生错误时vlc已经启动了。
而且,如果直接执行代码,第一次执行会提示上面的错误,但是因为except发生后直接退出了,所以vlc仍然在后台执行;然后在后台的vlc活着的情况下再次执行代码,一样还是connect refused,然后后台会继续躺着俩VLC进程……
但如果先在另一个终端里执行VLC,那么直接执行代码就能成功……总之就是在python 中启动vlc总是会杯具……
考虑了很久仍百思不得其解,特来求助,希望有熟悉的高手能够给予解答……

附测试代码:
代码:
#!/usr/bin/env python

import os, time, socket

f = '/media/ENTER/Video/3days_op.avi'

def cmd(s, string):
    print 'cmd %s' %string
    s.send('%s\n' %string)

if __name__=='__main__':
    os.system('/usr/bin/cvlc -I rc --rc-host=localhost:8888 & ')
    time.sleep(7)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(('localhost', 8888))
    cmd(s, "add '%s'" %f)
    time.sleep(10)
    cmd(s, "pause")
    time.sleep(5)
    cmd(s, "quit")
    s.close()
    #os.system('killall vlc')
   


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [Python]使用socket方式连接vlc提示connect refuse
帖子发表于 : 2010-12-07 10:35 
头像

注册: 2009-03-31 8:12
帖子: 24
送出感谢: 0 次
接收感谢: 1
问题解决了,和python和socket这边无关,是我用cvlc的问题:
代码:
$ cat /usr/bin/cvlc
#! /bin/sh
exec /usr/bin/vlc -I "dummy" "$@"

把代码中的
os.system('/usr/bin/cvlc -I rc --rc-host=localhost:8888 & ')
替换为
subprocess.Popen(['/usr/bin/vlc', '-I', 'dummy', '-I', 'rc', '--rc-host=localhost:8888'])
就可以了…… :em06


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [Python]使用socket方式连接vlc提示connect refuse
帖子发表于 : 2010-12-07 11:38 
头像

注册: 2008-04-26 12:41
帖子: 11000
送出感谢: 11
接收感谢: 38
:em09


_________________
[新手必读]wubi安装常见问题(FAQ)
[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法
kde下唯美的暗黑内透主题(无需编译)
无穷老机上的Trinity Desktop Environment


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译