示例#1
0
    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')
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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')
示例#5
0
    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)
示例#6
0
    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())
示例#7
0
 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())