Source code for ggame.sound

"""
Tools for loading and playing sound resources in ggame applications.
"""

from ggame.sysdeps import SND_Sound


[docs] class SoundAsset: """ Class representing a single sound asset (sound file, such as .mp3 or .wav). :param str url: The URL or file name of the desired sound. Sound file formats may include `.wav` or `.mp3`, subject to browser compatibility. :returns: The asset instance """ def __init__(self, url): self.url = url """ A string containing the url or name of the asset file. """
[docs] class Sound(object): # pylint: disable=useless-object-inheritance """ The Sound class represents a sound, with methods for controlling when and how the sound is played in the application. :param SoundAsset asset: A valid :class:`SoundAsset` instance. :returns: the Sound instance """ def __init__(self, asset): self._asset = asset """ A reference to the sound asset instance. """ self._snd = SND_Sound(self._asset.url) """ A reference to the underlying sound object provided by the system. """ self._snd.load()
[docs] def play(self): """ Play the sound once. """ self.stop() self._snd.play()
[docs] def loop(self): """ Play the sound continuously, looping forever. """ self.stop() self._snd.loop() self._snd.play()
[docs] def stop(self): """ Stop playing the sound. """ self._snd.stop()
@property def volume(self): """ The volume property is a number ranging from 0-100 that represents the volume or intensity of the sound when it is playing. """ return self._snd.getVolume() @volume.setter def volume(self, value): self._snd.setVolume(value)