2012-04-04 5 views
0

Я пишу код для музыкального плеера, используя пакет pyglet в python. Я мог бы сыграть песню успешно. Но я не могу приостановить песню после звонка pyglet.app.run().Как использовать метод pause в пакете pyglet

Если я звоню pyglet.app.run() после вызова паузы, я не могу воспроизвести песню. Как я могу управлять воспроизведением и паузой в своем коде?

Мой код:

import pyglet 

import time 

player = pyglet.media.Player() 

player.queue(pyglet.resource.media('1.mp3')) 

player.play() 

pyglet.app.run() 

time.sleep(5) 

player.pause() 

print player.time() 

ответ

0
pyglet.app.run() 

Эта функция представляет собой бесконечный цикл. Вы можете создать новый поток, который вы можете спать.

class ControllerThread(threading.Thread): 
def __init__(self, player): 
    threading.Thread.__init__(self) 
    self.player = player 

def run(self): 
    time.sleep(10) 
    self.player.pause() 

player = pyglet.media.Player() 
pyglet.resource.path = [r'path/to/music'] 
pyglet.resource.reindex() 

music = pyglet.resource.media(r'awesomeSong.mp3') 
player.queue(music) 
player.play() 

c = ControllerThread(player) 
c.start() 

pyglet.app.run() 
0

Этот код должен работать для вас

import pyglet 
import threading 
import time 
class ControllerThread(threading.Thread): 
    def __init__(self, player): 
    threading.Thread.__init__(self) 
     self.player = player 
    def run(self): 
     self.player.pause() 
player = pyglet.media.Player() 
pyglet.resource.path = [r'/your/source/path/'] 
pyglet.resource.reindex() 
def muz(): 
    music = pyglet.resource.media(r'file.mp3') 
    player.queue(music) 
    player.play() 
t=threading.Thread(target=muz) 
a='' 
while a!=' ': 
    a=raw_input("STOP/Play S/P: ") 
    if a=='s': 
     c = ControllerThread(player) 
     c.start() 
    elif a=='p': 
     if t.isAlive(): 
      player.play() 
     else: 
      t=threading.Thread(target=muz) 
      t.start() 
pyglet.app.run() 
Смежные вопросы