def __init__(self, sound_file, id=None): if id is None: self._id = Sound._id Sound._id += 1 self._mixer._register_sound(self) else: self._id = id if isinstance(sound_file, str): self._sound_object = Audio(sound_file.replace('\\', '/')) else: self._sound_object = sound_file self._sound_objects = [] self._channel = None self._ch = None self._volume = 1.0 self._nonimplemented_methods()
def __init__(self, sound_file, id=None): if id is None: self._id = Sound._id Sound._id += 1 self._mixer._register_sound(self) else: self._id = id if isinstance(sound_file, str): self._sound_object = Audio(sound_file.replace('\\','/')) else: self._sound_object = sound_file self._sound_objects = [] self._channel = None self._ch = None self._volume = 1.0 self._nonimplemented_methods()
class Sound: """ **pyjsdl.mixer.Sound** * Sound.play * Sound.stop * Sound.set_volume * Sound.get_volume * Sound.get_num_channels * Sound.get_length """ _id = 0 _mixer = None def __init__(self, sound_file, id=None): if id is None: self._id = Sound._id Sound._id += 1 self._mixer._register_sound(self) else: self._id = id if isinstance(sound_file, str): self._sound_object = Audio(sound_file.replace('\\', '/')) else: self._sound_object = sound_file self._sound_objects = [] self._channel = None self._ch = None self._volume = 1.0 self._nonimplemented_methods() def play(self, loops=0, maxtime=0, fade_ms=0): """ Play sound on mixer channel. Argument loops is number of repeats or -1 for continuous. """ if not self._channel: self._channel = self._mixer.find_channel() if self._channel: self._channel._set_sound(self) else: return None if self._sound_object.isPaused(): self._ch = self._channel else: self._ch = self._mixer.find_channel() if self._ch: sound = Sound(self._sound_object.getSrc(), self._id) self._ch._set_sound(sound) else: return None if not loops: self._ch._play() else: self._ch._play_repeat(loops) return self._ch def stop(self): """ Stop sound on mixer channel. """ if self._channel: self._channel.stop() def set_volume(self, volume): """ Set sound volume. Argument volume of value 0.0 to 1.0. """ if volume < 0.0: volume = 0.0 elif volume > 1.0: volume = 1.0 self._volume = volume self._sound_object.setVolume(self._volume) return None def get_volume(self): """ Get sound volume. """ return self._volume def get_num_channels(self): """ Get number of channels sound is active. """ channel = 0 for id in self._mixer._channel_pool: try: if self._mixer._channels[id]._sound._id == self._id: channel += 1 except AttributeError: continue return channel def get_length(self): """ Get length of sound sample. """ return self._sound_object.getDuration() def _nonimplemented_methods(self): """ Non-implemented methods. """ self.fadeout = lambda *arg: None self.get_buffer = lambda *arg: None
class Sound: """ **pyjsdl.mixer.Sound** * Sound.play * Sound.stop * Sound.set_volume * Sound.get_volume * Sound.get_num_channels * Sound.get_length """ _id = 0 _mixer = None def __init__(self, sound_file, id=None): if id is None: self._id = Sound._id Sound._id += 1 self._mixer._register_sound(self) else: self._id = id if isinstance(sound_file, str): self._sound_object = Audio(sound_file.replace('\\','/')) else: self._sound_object = sound_file self._sound_objects = [] self._channel = None self._ch = None self._volume = 1.0 self._nonimplemented_methods() def play(self, loops=0, maxtime=0, fade_ms=0): """ Play sound on mixer channel. Argument loops is number of repeats or -1 for continuous. """ if not self._channel: self._channel = self._mixer.find_channel() if self._channel: self._channel._set_sound(self) else: return None if self._sound_object.isPaused(): self._ch = self._channel else: self._ch = self._mixer.find_channel() if self._ch: sound = Sound(self._sound_object.getSrc(), self._id) self._ch._set_sound(sound) else: return None if not loops: self._ch._play() else: self._ch._play_repeat(loops) return self._ch def stop(self): """ Stop sound on mixer channel. """ if self._channel: self._channel.stop() def set_volume(self, volume): """ Set sound volume. Argument volume of value 0.0 to 1.0. """ if volume < 0.0: volume = 0.0 elif volume > 1.0: volume = 1.0 self._volume = volume self._sound_object.setVolume(self._volume) return None def get_volume(self): """ Get sound volume. """ return self._volume def get_num_channels(self): """ Get number of channels sound is active. """ channel = 0 for id in self._mixer._channel_pool: try: if self._mixer._channels[id]._sound._id == self._id: channel += 1 except AttributeError: continue return channel def get_length(self): """ Get length of sound sample. """ return self._sound_object.getDuration() def _nonimplemented_methods(self): """ Non-implemented methods. """ self.fadeout = lambda *arg: None self.get_buffer = lambda *arg: None