线程模块问题

时间:2011-06-24 22:47:42

标签: python

所以我有代码:

def Listen(filepath):
        def play(filepath):

            def play_music(music_file):
                """
                stream music with mixer.music module in blocking manner
                this will stream the sound from disk while playing
                """
                clock = pygame.time.Clock()

                pygame.mixer.music.load(music_file)


                pygame.mixer.music.play()
                while pygame.mixer.music.get_busy():
                    # check if playback has finished
                    clock.tick(30)


            # pick a MP3 or MIDI music file you have ...
            # (if not in working folder, use full path)
            music_file = filepath
            #music_file = "ChancesAre.mid"

            # set up the mixer
            freq = 44100     # audio CD quality
            bitsize = -16    # unsigned 16 bit
            channels = 2     # 1 is mono, 2 is stereo
            buffer = 2048    # number of samples (experiment to get right sound)
            pygame.mixer.init(freq, bitsize, channels, buffer)

            # optional volume 0 to 1.0
            pygame.mixer.music.set_volume(1.0)


            play_music(music_file)
        thread.start_new_thread(play,(filepath))

我收到一个错误:

File "C:\Users\Desktop\WhaleTunes.py", line 59, in Listen
    thread.start_new_thread(play,(filepath))
<type 'exceptions.TypeError'>: 2nd arg must be a tuple

有谁知道我为什么会收到这个错误?

1 个答案:

答案 0 :(得分:18)

读取TypeError消息:“2nd arg必须是元组。”你有(filepath)。这不是一个元组。应该写出一个元素的元组:(filepath,)来消除歧义。