def __init__(self, name, chunks, chunksize=1024, channels=2, rate="auto"):
self.elements_per_ringbuffer = chunks
self.frames_per_element = chunksize
self.samples_per_frame = channels
self.bytes_per_sample = 2 # int16
self.name = name
self.channels = channels
self._ringbuffer = collections.deque(
[b"0"*self.bytes_per_sample*channels*chunksize]*chunks,
maxlen=self.elements_per_ringbuffer)
self.p = pyaudio.PyAudio() # pylint: disable=invalid-name
default_output = self.p.get_default_output_device_info()
self.deviceindex = default_output['index']
if rate == "auto":
self.rate = default_output['defaultSampleRate']
else:
self.rate = rate
self.has_new_audio = False
评论列表
文章目录