Ducking when voice messages are being played
This commit is contained in:
parent
a01eabea91
commit
a917a6a9cd
@ -3,6 +3,7 @@
|
|||||||
As this player does not have (still) an associated GUI, I have decided to place here the code for the interactor, which connects a bunch of pubsub events, and the presenter itself.
|
As this player does not have (still) an associated GUI, I have decided to place here the code for the interactor, which connects a bunch of pubsub events, and the presenter itself.
|
||||||
"""
|
"""
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
import random
|
import random
|
||||||
import logging
|
import logging
|
||||||
import sound_lib
|
import sound_lib
|
||||||
@ -120,7 +121,13 @@ class audioPlayer(object):
|
|||||||
except:
|
except:
|
||||||
log.error("Unable to play URL %s" % (url_))
|
log.error("Unable to play URL %s" % (url_))
|
||||||
return
|
return
|
||||||
|
self.message.volume = self.vol/100.0
|
||||||
self.message.play()
|
self.message.play()
|
||||||
|
volume_percent = self.volume*0.25
|
||||||
|
volume_step = self.volume*0.15
|
||||||
|
while self.stream.volume*100 > volume_percent:
|
||||||
|
self.stream.volume = self.stream.volume-(volume_step/100)
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
""" Stop audio playback. """
|
""" Stop audio playback. """
|
||||||
@ -132,6 +139,10 @@ class audioPlayer(object):
|
|||||||
def stop_message(self):
|
def stop_message(self):
|
||||||
if hasattr(self, "message") and self.message != None and self.message.is_playing == True:
|
if hasattr(self, "message") and self.message != None and self.message.is_playing == True:
|
||||||
self.message.stop()
|
self.message.stop()
|
||||||
|
volume_step = self.volume*0.15
|
||||||
|
while self.stream.volume*100 < self.volume:
|
||||||
|
self.stream.volume = self.stream.volume+(volume_step/100)
|
||||||
|
time.sleep(0.1)
|
||||||
self.message = None
|
self.message = None
|
||||||
|
|
||||||
def pause(self):
|
def pause(self):
|
||||||
@ -162,7 +173,11 @@ class audioPlayer(object):
|
|||||||
elif vol > 100:
|
elif vol > 100:
|
||||||
self.vol = 100
|
self.vol = 100
|
||||||
if self.stream != None:
|
if self.stream != None:
|
||||||
self.stream.volume = self.vol/100.0
|
if self.message != None and self.message.is_playing:
|
||||||
|
self.stream.volume = (self.vol*0.25)/100.0
|
||||||
|
self.message.volume = self.vol/100.0
|
||||||
|
else:
|
||||||
|
self.stream.volume = self.vol/100.0
|
||||||
|
|
||||||
def play_all(self, list_of_songs, shuffle=False):
|
def play_all(self, list_of_songs, shuffle=False):
|
||||||
""" Play all passed songs and adds all of those to the queue.
|
""" Play all passed songs and adds all of those to the queue.
|
||||||
@ -181,6 +196,11 @@ class audioPlayer(object):
|
|||||||
|
|
||||||
def player_function(self):
|
def player_function(self):
|
||||||
""" Check if the stream has reached the end of the file so it will play the next song. """
|
""" Check if the stream has reached the end of the file so it will play the next song. """
|
||||||
|
if self.message != None and self.message.is_playing == False and len(self.message) == self.message.position:
|
||||||
|
volume_step = self.volume*0.15
|
||||||
|
while self.stream.volume*100 < self.volume:
|
||||||
|
self.stream.volume = self.stream.volume+(volume_step/100)
|
||||||
|
time.sleep(0.1)
|
||||||
if self.stream != None and self.stream.is_playing == False and self.stopped == False and len(self.stream) == self.stream.position:
|
if self.stream != None and self.stream.is_playing == False and self.stopped == False and len(self.stream) == self.stream.position:
|
||||||
if self.playing_track >= len(self.queue):
|
if self.playing_track >= len(self.queue):
|
||||||
self.stopped = True
|
self.stopped = True
|
||||||
|
Loading…
Reference in New Issue
Block a user