示例#1
0
文件: record.py 项目: idreyn/robin
class Recorder(object):
	def __init__(self, settings):
		self.buffer = SampleBuffer(channels=settings.input.channels)
                self.settings = settings
		self.stream = create_stream(
			settings=settings,
			output=False,
			callback=lambda *args: self._recording(*args)
		)

	def _recording(self, input, *rest):
		self.buffer.put(input)

	def sample(self):
		while not self.buffer.has():
			pass
		return self.buffer.get_chunk()

	def start(self):
		self.stream.start()

	def stop(self):
		self.stream.stop()

	def rate(self):
		return int(self.stream.samplerate)
示例#2
0
文件: emit.py 项目: idreyn/robin
	def __init__(self, settings):
		self.buffer = SampleBuffer(channels=settings.output.channels)
		self.stream = create_stream(
			settings=settings,
			output=True,
			callback=lambda *args: self.playback(*args)
		)
示例#3
0
文件: record.py 项目: idreyn/robin
	def __init__(self, settings):
		self.buffer = SampleBuffer(channels=settings.input.channels)
                self.settings = settings
		self.stream = create_stream(
			settings=settings,
			output=False,
			callback=lambda *args: self._recording(*args)
		)
示例#4
0
文件: emit.py 项目: idreyn/robin
class Emitter(object):
	def __init__(self, settings):
		self.buffer = SampleBuffer(channels=settings.output.channels)
		self.stream = create_stream(
			settings=settings,
			output=True,
			callback=lambda *args: self.playback(*args)
		)

	def playback(self, output, *rest):
		output[:] = self.buffer.get_samples(len(output))

	def emit(self, arr):
		self.buffer.put(arr)

	def start(self):
		self.stream.start()

	def stop(self):
		self.stream.stop()

	def rate(self):
		return int(self.stream.samplerate)