Многопоточность в pygamePython

Программы на Python
Ответить
Anonymous
 Многопоточность в pygame

Сообщение Anonymous »

Я написал программу на Python и pygame в Linux. Моя проблема в том, что когда я вызываю свою функцию, которая дозванивается до модема, а затем доставляет сообщение, программа приостанавливается до тех пор, пока функция не завершится. Мне нужен способ подпроцесса или потоковой обработки функции. Я новичок в Python и pygame, так что это может быть просто, но все, что я пробовал, не помогло.

Кроме того, я уверен, что, вероятно, существует более элегантный способ обработки звуков и пауз. Первый сон дает модему время для звонка. Следующие два предназначены для естественного звучания пауз между словами и предложениями, а последний — дать всему сценарию время для доставки сообщения до того, как модем повесит трубку.

Я вызываю функцию и передаю переменные следующим образом:

Код: Выделить всё

A = 'Electronic_Chime.mp3'
B = 'please_check.mp3'
C = 'three.mp3'

contact_user(A,B,C)
А это функция:

Код: Выделить всё

def contact_user( A, B, C ):
ser.write("ATDT441\r")  # Attention - Dial via tone number
time.sleep(6)

pygame.mixer.music.load(A)
pygame.mixer.music.play()
time.sleep(2)

pygame.mixer.music.load(B)
pygame.mixer.music.play(1)
time.sleep(2)

pygame.mixer.music.load(C)
pygame.mixer.music.queue(C)
pygame.mixer.music.play()

time.sleep(10)
Будем признательны за любые идеи и предложения.

PS. Я пробовал:

Код: Выделить всё

thread1 = threading.Thread(contact_user(A,B,C))
thread1.start()
Похоже, что программа ведет себя точно так же, хотя я создал поток contact_user(A,B,C).

Подробнее здесь: https://stackoverflow.com/questions/275 ... -in-pygame
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»