def test_encoder_stereo_48khz(self): encoder = get_encoder(OPUS_CODEC) self.assertTrue(isinstance(encoder, OpusEncoder)) frame = AudioFrame(channels=2, data=b'\x00\x00' * 2 * 960, sample_rate=48000) data = encoder.encode(frame) self.assertEqual(data, b'\xfc\xff\xfe')
def test_encoder_stereo_8khz(self): encoder = get_encoder(PCMU_CODEC) self.assertTrue(isinstance(encoder, PcmuEncoder)) frame = AudioFrame(channels=2, data=b'\x00\x00' * 2 * 160, sample_rate=8000) data = encoder.encode(frame) self.assertEqual(data, b'\xff' * 160)
def test_encoder_mono_8hz(self): encoder = get_encoder(PCMA_CODEC) self.assertTrue(isinstance(encoder, PcmaEncoder)) frame = AudioFrame(channels=1, data=b'\x00\x00' * 160, sample_rate=8000) data = encoder.encode(frame) self.assertEqual(data, b'\xd5' * 160)
def test_encoder_mono_8khz(self): encoder = get_encoder(OPUS_CODEC) self.assertTrue(isinstance(encoder, OpusEncoder)) frame = AudioFrame(channels=1, data=b'\x00\x00' * 160, sample_rate=8000, timestamp=0) data = encoder.encode(frame) self.assertEqual(data, b'\xfc\xff\xfe')
def test_encoder_stereo_48khz(self): encoder = get_encoder(PCMA_CODEC) self.assertTrue(isinstance(encoder, PcmaEncoder)) frame = AudioFrame(channels=2, data=b'\x00\x00' * 2 * 960, sample_rate=48000, timestamp=0) data = encoder.encode(frame) self.assertEqual(data, b'\xd5' * 160)
async def recv(self): # as we are reading audio from a file and not using a "live" source, # we need to control the rate at which audio is sent if self.last: now = time.time() await asyncio.sleep(self.last + AUDIO_PTIME - now) self.last = time.time() return AudioFrame(channels=self.reader.getnchannels(), data=self.reader.readframes(self.frames_per_packet), sample_rate=self.reader.getframerate())
async def recv(self): self.last = await pause(self.last, 0.02) return AudioFrame( channels=self.reader.getnchannels(), data=self.reader.readframes(160), sample_rate=self.reader.getframerate())