Estou tentando forçar uma única página que está reproduzindo áudio por meio de javascript a usar uma placa de som diferente do resto do navegador (na verdade, do resto do sistema). Meu entendimento atual é que um navegador não acessa diretamente o coletor da placa de som, mas delega ao plug-in que deseja reproduzir o áudio. Teoricamente, isso deveria permitir que o javascript usasse um coletor de som diferente do flash ou de qualquer outro plug-in. Se é realmente possível...
Observe que isso não se destina a ser distribuído, estou apenas tentando alterar a saída em um computador, através do console ou similar.
Responder1
É o futuro e agora é possível! Você pode coletar saídas disponíveis deviceId
usando a mediaDevices.enumerateDevices
função. Em seguida, aplique o desejado deviceId
a um Audio
elemento comsetSinkId
const devices = await navigator.mediaDevices.enumerateDevices();
const outputs = devices.filter(({ kind }) => kind === 'audiooutput');
const output = outputs[1]; // Choose a device
const audio = new Audio();
audio.setSinkId(output.deviceId);
audio.play();
Tudo o que resta é aplicar algum som audio
definindo-o src
ou srcObject
campo.
Código relacionado:https://codepen.io/smujmaiku/pen/oNjBmVj
Nota: audio.play()
requer alguma interação do usuário primeiro.
Além disso: verifique suas bandeirashttps://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId
Responder2
Impossível. Talvez no futuro, mas por enquanto o Safari, Chrome, FireFox, Opera e o resto do navegador não tem nem opções em Configurações/Preferências para alterá-lo. E como você sabe, o javascript funciona no navegador da internet e é capaz de fazer o que eles (navegador da internet) podem fazer.
Agora estou pensando que há uma chance de mudar isso com o Node.js, pois você pode escrever um pacote/gancho principal/módulo externo e ser capaz de alterá-lo de alguma forma com javascript, mas o efeito de alterar a placa de som será apenas no servidor cliente paralelo com Node.js + seu módulo.
Se você quiser mudar isso (além de não poder usar javascript e navegador de internet), você pode usar o Virtual Audio Cablehttp://en.wikipedia.org/wiki/Virtual_Audio_Cableque é um aplicativo para Windows.
Pergunta semelhanteAltere o dispositivo de saída de áudio no Firefox