aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/voice_client.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/discord/voice_client.py b/discord/voice_client.py
index 70b6574f..3324587f 100644
--- a/discord/voice_client.py
+++ b/discord/voice_client.py
@@ -62,7 +62,8 @@ class StreamPlayer(threading.Thread):
self.frame_size = encoder.frame_size
self.player = player
self._end = threading.Event()
- self._paused = threading.Event()
+ self._resumed = threading.Event()
+ self._resumed.set() # we are not paused
self._connected = connected
self.after = after
self.delay = encoder.frame_length / 1000.0
@@ -71,8 +72,10 @@ class StreamPlayer(threading.Thread):
self.loops = 0
self._start = time.time()
while not self._end.is_set():
- if self._paused.is_set():
- continue
+ # are we paused?
+ if not self._resumed.is_set():
+ # wait until we aren't
+ self._resumed.wait()
if not self._connected.is_set():
self.stop()
@@ -98,15 +101,15 @@ class StreamPlayer(threading.Thread):
pass
def pause(self):
- self._paused.set()
+ self._resumed.clear()
def resume(self):
self.loops = 0
self._start = time.time()
- self._paused.clear()
+ self._resumed.set()
def is_playing(self):
- return not self._paused.is_set() and not self.is_done()
+ return self._resumed.is_set() and not self.is_done()
def is_done(self):
return not self._connected.is_set() or self._end.is_set()