递增count变量而不等待代码的上行完成

2024-04-29 12:21:06 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有这个代码。 我想通过不等待这两个音频文件完全处理来增加count变量。 在我下面的代码中,很明显,只有当两个音频文件播放完毕时,count变量才会增加。 有没有办法在后台播放,或者我可以在这里调用一个子流程

import pygame
import time
pygame.mixer.init()
count = 0 
while(True):
    pygame.mixer.Sound('song1.ogg').play()
    time.sleep(0.54)
    pygame.mixer.Sound('song2.ogg').play()
    time.sleep(0.52)
    count +=1
    print(count)

1条回答
网友
1楼 · 发布于 2024-04-29 12:21:06

实际上,代码正在等待sleep命令完成。通常,您永远不希望在主线程中使用sleep语句,因为您的程序将被锁定。您可以将播放声音的逻辑移动到新的Thread

import time
import pygame
from threading import Thread

def play_sounds():
    pygame.mixer.Sound('song1.ogg').play()
    time.sleep(0.54)
    pygame.mixer.Sound('song2.ogg').play()
    time.sleep(0.52)

pygame.mixer.init()
count = 0 
while(True):
    Thread(target=play_sounds).start()
    count +=1
    print(count)

相关问题 更多 >