Esempio n. 1
0
    def data(self, audio_data, audio_format, length=None):
        assert self.is_valid
        length = length or audio_data.length

        try:
            al_format = self._format_map[(audio_format.channels,
                                          audio_format.sample_size)]
        except KeyError:
            raise MediaException('Unsupported sample size')

        al.alBufferData(self._al_buffer, al_format, audio_data.data, length,
                        audio_format.sample_rate)
        self._check_error('Failed to add data to buffer.')
Esempio n. 2
0
    def get_queue_source(self):
        """Return the ``Source`` to be used as the source for a player.

        Default implementation returns self.

        Returns:
            :class:`.Source`
        """
        if self.is_player_source:
            raise MediaException(
                'This source is already a source on a player.')
        self.is_player_source = True
        return self
Esempio n. 3
0
 def create_sample_spec(self, audio_format):
     """
     Create a PulseAudio sample spec from pyglet audio format.
     """
     sample_spec = pa.pa_sample_spec()
     if audio_format.sample_size == 8:
         sample_spec.format = pa.PA_SAMPLE_U8
     elif audio_format.sample_size == 16:
         if sys.byteorder == 'little':
             sample_spec.format = pa.PA_SAMPLE_S16LE
         else:
             sample_spec.format = pa.PA_SAMPLE_S16BE
     else:
         raise MediaException('Unsupported sample size')
     sample_spec.rate = audio_format.sample_rate
     sample_spec.channels = audio_format.channels
     return sample_spec