Форум сайта python.su
def volume_control(VOLUME_CHANGE_TIME,level_per_second):
for vol in range(0,VOLUME_CHANGE_TIME):
subprocess.call(['nircmd','changesysvolume',str(level_per_second)])
sleep(1)
def play_audio(REPEATS,FILENAME):
for r in range(REPEATS):
p=subprocess.Popen(["ffplay", "-nodisp", "-autoexit", FILENAME])
print "start audio"
p.communicate()
if __name__ == "__main__":
pool.apply_async(play_audio,args=[REPEATS,FILENAME])
pool = multiprocessing.Pool(2, init_worker)
try:
pool.apply_async(volume_control,args=[VOLUME_CHANGE_TIME,level_per_second])
pool.apply_async(play_audio,args=[REPEATS,FILENAME])
pool.close()
pool.join()
except KeyboardInterrupt:
print "Caught KeyboardInterrupt, terminating workers"
pool.terminate()
pool.close()
pool.join()
Отредактировано Megido (Июнь 3, 2016 21:59:38)
Офлайн
Ну например проанализировать return code.
Офлайн
я вот нашел пару вариантов для решения проблемы, но
def preexec(): # Don't forward signals.
os.setpgrp()
def preexec_function():
signal.signal(signal.SIGINT, signal.SIG_IGN)
my_process = subprocess.Popen(
["my_executable"],
preexec_fn = preexec_function
)
Отредактировано Megido (Июнь 3, 2016 22:11:26)
Офлайн
Megido
какой смысл пула если потом используется subprocess? создаем процессы, что бы создавать процессы?
собираем созданные процессы в список и вешаем обработчик для signal.SIGINT, в котором убиваем дочерние процессы
Офлайн
sanderзатем что эти два процесса должны выполнятся паралельно
Megidoкакой смысл пула если потом используется subprocess? создаем процессы, что бы создавать процессы?собираем созданные процессы в список и вешаем обработчик для signal.SIGINT, в котором убиваем дочерние процессы
Офлайн
Megido
делаем 2 раза Popen, делов то
Офлайн