Proceso a segundo plano mientras la aplicacion corre normalmente
oziko
oziko en fusiondementes.com
Mie Mayo 12 01:07:37 CEST 2004
Que tal, estoy haciendo una reproductor de ogg utlizando pygame, esta
aplicacion lanza una ventana que muestra las portadas y la lista de
canciones disponibles, tiene una ventana de input donde intriduzco el
numero de cancion que quiero reproducir, pro ejemplo el 5, entonces el
programa reproduce la cancion 5.ogg utilizand ogg123, pero la pantalla
de las portadas se queda congelada hasta que el repoductor termina,
entonces se refresca y puedo volver a introducir numeros. La idea es que
mientras se reproduce la cancion puedo yo navegar por las portadas y
seguir introduciendo numeros que se añadiran a la cola de reproduccion.
Como una rockola:
Ahora un poco de codigo para explicarme mejor:
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
screen.blit(uicover1, coverrect1)
screen.blit(uicover2, coverrect2)
screen.blit(uicover3, coverrect3)
screen.blit(uicover4, coverrect4)
numero = ask(screen, "->")
try:
queue.append(int(numero))
except ValueError:
pass
rep_ogg()
print queue
pygame.display.flip()
este cacho es la que refrezca la pantalla, ls funcion ask(screen,"->")
es la ventana de input que recoge el valor y lo mete a la cola, luego el
ciclo manda a reproducir.
def rep_ogg():
idtrack = queue.pop(0)
ogg=ogg_path+str(idtrack)+'.ogg'
pid = os.fork()
if pid == 0:
#os.popen3(ogg)
os.execv('/usr/bin/ogg123', ('ogg123', ogg,))
nop, status = os.waitpid(pid, 0)
return status
esta funcion es la que reproduce, no se como mandar la reproduccion del
ogg en segundo plano y salir de la funcion para poder refrezcar la
pantalla y agregar mas numeros a la lista. Ojala me puedan orientar un
poco, gracias.
Más información sobre la lista de distribución Python-es