0

pygameで曲を再生しようとしていますが、曲が再生されません。

私のコード:

import pygame,time
pygame.init()
print "Mixer settings", pygame.mixer.get_init()
print "Mixer channels", pygame.mixer.get_num_channels()
pygame.mixer.music.set_volume(1.0)
pygame.mixer.music.load('C:/1.mp3')
print "Play"
pygame.mixer.music.play(0)
while pygame.mixer.music.get_busy():
   print "Playing", pygame.mixer.music.get_pos()
time.sleep(1)
print "Done"

私は次のように出力を取得しています

Mixer settings (22050, -16, 2)
Mixer channels 8
Play
Done
4

2 に答える 2

1

あなたのコードは、Python2.7.2を実行しているLubuntu11.10で、Youtubeクリップから変換したMP3で動作します。mp3の長さがゼロではないことを確認しましたか?あなたはwavファイルを試しましたか?

他の説明がないので、呼び出しがプロセスまたはスレッドの開始を終了していないpygame.mixer.music.get_busy()場合、falseを返す可能性があると考えられます。play(0)これにより、コードはwhileループをスキップし、「Done」を出力して終了し、音楽プレーヤーオブジェクトを削除して、何かが聞こえる前に再生を終了します。これが問題である場合は、play(0)前後に次のようなことを試すことができますprint Done

pygame.mixer.music.set_endevent(pygame.USEREVENT)
finishedPlaying = False

while not finishedPlaying:
    for event in pygame.event.get():
        if event.type == pygame.USEREVENT: 
            finishedPlaying = True
            break # only because we don't care about any other events
    print "Playing", pygame.mixer.music.get_pos() # will print -1 on the last iteration
于 2012-04-05T01:15:43.517 に答える
0

pygame.mixer.music.playのコメントで私はこれを見つけました:

November 18, 2010 7:30pm - Anonymous
Work Exmpl:

pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096)
sound = pygame.mixer.Sound('Time_to_coffee.wav').play()

また、 Iskar Jarakのおかげで、繰り返したい回数として0を送信しているようですが、-1は無限大です。

http://www.pygame.org/docs/ref/music.html#pygame.mixer.music.play

于 2012-04-05T00:27:19.220 に答える