Open
Description
There was an idea floating around to integrate MediaStream to AudioDeviceClient. This is just a straw-man code example.
// These are MediaStream objects that are already opened.
const remoteConsumer;
const remoteProducer;
// Scenario: device #6 and #7 are remote input and output devices respectively.
(async () => {
await navigator.mediaDevices.registerAudioSink(remoteConsumer);
await navigator.mediaDevices.registerAudioSource(remoteProducer);
const devices = await navigator.mediaDevices.enumerateDevices();
const constraints = {
mode: ‘raw’,
outputDeviceId: devices[6].deviceId,
inputDeviceId: devices[7].deviceId,
callbackBufferSize: 2048,
inputChannelCount: 2,
outputChannelCount: 2,
};
const client = await navigator.mediaDevices.getAudioDeviceClient(constraints);
await client.addModule('my-client.js');
client.start();
})();
This needs a spec work for MediaDevices API, which might take a while. However, once we can make it the API shape looks quite sensible.
cc @alvestrand