2013-06-13 120 views
1

我正在使用pyglet的Player類在python中編寫音頻播放器。這個模塊只是對Player和Source類的測試,它什麼都不會產生。沒有聲音,沒有錯誤,只是關於vsync的一個警告,可能與實際問題無關。Pyglet播放器不會播放

import pyglet.media as media 
def main(): 
    fname='D:\\Music\\JRR Tolkien\\LotR Part I The Fellowship of the Ring\\01-- 0001 Credits.mp3' 
    src=media.load(fname) 
    player=media.Player() 
    player.queue(src) 
    player.volume=1.0 
    player.play() 
if __name__=="__main__": 
    main() 

此外,src.play()也不起作用。我究竟做錯了什麼?

編輯:我也確認media.drivermedia.drivers.directsound模塊。我擔心它使用silent

回答

1

你必須以某種方式啓動pyglet循環。除了繪製屏幕之外,還可以調用事件處理程序並播放聲音。

import pyglet 
import pyglet.media as media 
def main(): 
    fname='D:\\test.mp3' 
    src=media.load(fname) 
    player=media.Player() 
    player.queue(src) 
    player.volume=1.0 
    player.play() 
    try: 
     pyglet.app.run() 
    except KeyboardInterrupt: 
     player.next() 

if __name__=="__main__": 
    main() 

類似這樣的工作,但如果你使用Pyglet也確定你會想畫一些東西。

+0

好吧,我試過了,但現在它在'player.play()'沒有達到我放在pyglet.app.run()'和'player.next()'後面沒有錯誤的打印語句後立即凍結。 – user1472751

+0

我現在正在'Thread'中運行'pyglet.app.run'並持續打印'player.time',但顯示爲零,因此它一定不能播放。 – user1472751

+0

這個例子適用於我。嘗試創建一個pyglet窗口,當你關閉窗口時你的打印語句會被觸及。你有沒有安裝AVBin?它可以與wav文件一起使用嗎? – Txema