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.')
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
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