Skip to content

VicNing/audio-loopback-extension

Repository files navigation

audio-loopback-extension

Introduction

An agora Web SDK extension which loops back audio through WebRTC PeerConnection to workaround Chrome echo issues.

Usage

import AgoraRTC from 'agora-rtc-sdk-ng'
import {AudioLoopbackExtension} from 'audio-loopback-extension'

async function main(){
  extension = new AudioLoopbackExtension();
  AgoraRTC.registerExtensions([extension]);
  
  //...join logic from Agora Web SDK
  
  client.on('user-published',async (user,mediaType)=>{
    if(mediaType === 'audio'){
      const remoteAudioTrack = await client.subscribe(user,mediaType);
      const loopbackProcessor = extension.createProcessor();
      
      remoteAudioTrack.pipe(loopbackProcessor).pipe(remoteAudioTrack.processorDestination);
    }
  });
}

if audio-loopback-extension is used along with other audio extensions, make sure audio-loopback-processor is last processor inside the processing pipeline.

In another words audio-loopback-processor MUST pipe to remoteAudioTrack.processorDestination.

let audioProcessorA;
let audioLoopbackProcessor;

remoteAudioTrack.pipe(audioProcessorA).pipe(audioLoopbackProcessor).pipe(remoteAudioTrack.processorDestination);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published