2

我正在编写一个音乐播放器,为了能够控制音乐阅读,我创建了一个线程,在其中放置了一个 while 循环。我的问题是,即使我用 pyglet.clock.tick() 限制循环,我的 cpu 也是 100%。

有没有办法减少它?

class PlayerThread(threading.Thread):

  stopnow = None
  player = None

  def __init__(self, player, file_path):
    threading.Thread.__init__(self)

    self.stopnow = threading.Event()
    self.player = player
    source = pyglet.media.load(file_path)
    self.player.queue(source)

  def run(self):
    self.play()
    while not self.stopnow.isSet():
      pyglet.clock.tick()


  def play(self):
    if not self.player.playing:
      self.player.play()

  def stop(self):
    self.stopnow.set()

  def pause(self):
    if self.player.playing:
      self.player.pause()

谢谢您的回答。

4

1 回答 1

2

您必须使用clock.set_fps_limit(number_of_frames_per_second)来设置帧率的上限。

于 2013-01-29T09:55:55.607 回答