Я написал простую программу python для воспроизведения и паузы музыкального проигрывателя банши. В то время как он работает на моей собственной машине, у меня есть проблема с удаленным компьютером, подключенным к тому же маршрутизатору (LAN). Я отредактировал session.conf удаленной машины, чтобы добавить эту строку:
<listen>tcp:host=localhost,port=12434</listen>
и вот моя программа:
import dbus
bus_obj=dbus.bus.BusConnection("tcp:host=localhost,port=12434")
proxy_object=bus_obj.get_object('org.bansheeproject.Banshee',
'/org/bansheeproject/Banshee/PlayerEngine')
playerengine_iface=dbus.Interface(proxy_object,
dbus_interface='org.bansheeproject.Banshee.PlayerEngine')
var=0
while (var!="3"):
var=raw_input("\nPress\n1 to play\n2 to pause\n3 to exit\n")
if var=="1":
print "playing..."
playerengine_iface.Play()
elif var=="2":
print "pausing"
playerengine_iface.Pause()
Это то, что я получаю, когда пытаюсь выполнить его
Traceback (most recent call last):
File "dbus3.py", line 4, in <module>
bus_obj=dbus.bus.BusConnection("tcp:host=localhost,port=12434")
File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 125, in __new__
bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoServer: Failed to connect to socket "localhost:12434" Connection refused
Что я здесь делаю неправильно? должен ли я редактировать /usr/lib/python 2.7/dist-packages/dbus/bus.py
UPDATE:
ОК, вот сделка когда я добавляю
<listen>tcp:host=192.168.1.7,port=12434</listen>
to/etc/dbus-1/session.conf, затем перезагрузитесь, надеясь, что он начнет прослушивание при перезагрузке, Он никогда не садится. Он застревает на экране загрузки, а иногда черный экран со следующим текстом мигает:
Pulseaudio Configured For Per-user Sessions Saned Disabled;edit/etc/default/saned
поэтому, когда я иду ctrl + alt + f1, измените session.conf на исходное состояние и перезагрузитесь, он правильно загрузится.
Что это все? Как я могу заставить dbus-демона прослушивать tcp-соединения, не сталкиваясь с проблемами?