Soundshine app icon

Soundshine

← Voltar ao blogue

Porque é Que o macOS Bloqueia o Áudio do Sistema (E a Solução que Demora 30 Segundos)

Estás numa chamada do Zoom e queres tocar um vídeo do YouTube para que todos ouçam. Carregas em play, e os teus participantes não ouvem nada. Ou estás a tentar gravar o teu ecrã com o QuickTime e o vídeo final não tem áudio do sistema, só silêncio absoluto. Pesquisas pelas Definições do Sistema, verificas as opções de áudio do Zoom, espreitas pelos menus do QuickTime. Nada.

Isto não é um bug. É uma escolha de design deliberada da Apple. O macOS simplesmente não permite que as aplicações captem o áudio que está a tocar no teu computador. Se alguma vez te perguntaste porque é que isto funciona bem no Windows mas parece impossível no Mac, eis o que se passa por dentro.

Como o macOS Trata o Áudio

Cada som no Mac flui por um sistema chamado CoreAudio. No seu centro está algo chamado HAL, ou Camada de Abstracção de Hardware. O HAL é o porteiro entre o software e o hardware de áudio. Quando o Spotify toca uma música, o CoreAudio envia esse áudio pelo HAL para um dispositivo de saída (os teus altifalantes ou auscultadores). Quando o Zoom precisa da tua voz, pede ao HAL áudio de um dispositivo de entrada (o teu microfone).

Eis a parte chave: o CoreAudio trata entradas e saídas como mundos completamente separados. O áudio flui para fora para os altifalantes. O áudio flui para dentro a partir dos microfones. Não há uma ponte incorporada que ligue os dois. Não há forma de uma aplicação dizer “dá-me o que estiver actualmente a tocar pelos altifalantes” porque esse caminho simplesmente não existe no sistema.

Isto é diferente de como o Windows funciona. O Windows tem uma funcionalidade chamada captura de loopback WASAPI, incorporada directamente na sua pilha de áudio. O loopback WASAPI permite a qualquer aplicação ligar-se ao fluxo de áudio que vai para os altifalantes e lê-lo como entrada. É por isso que as aplicações Windows podem oferecer “Stereo Mix” ou “What U Hear” como fonte de gravação.

O macOS escolheu não incluir nada disto.

Porque é Que a Apple Mantém Isto Fechado

A Apple nunca publicou uma explicação oficial, mas o raciocínio é razoavelmente claro se olhares para como o macOS aborda a privacidade e a segurança em todas as áreas.

Permitir que qualquer aplicação capte silenciosamente todo o áudio do sistema seria uma preocupação séria de privacidade. Imagina um processo em segundo plano a gravar as tuas chamadas do FaceTime, mensagens de voz ou o áudio de uma reunião confidencial, tudo sem o teu conhecimento. Ao não fornecer um caminho de loopback, a Apple garante que nenhuma aplicação pode escutar áudio de outras aplicações a menos que instales explicitamente um controlador ao nível do sistema e lhe concedas permissão.

É a mesma filosofia por trás do macOS exigir que aprovem acesso a gravação de ecrã, acesso ao microfone e acesso à câmara aplicação a aplicação. A Apple prefere fechar tudo por defeito e deixar os utilizadores aderirem, em vez de deixar portas abertas.

O compromisso é que casos de uso legítimos, como partilhar uma música numa videochamada ou gravar um tutorial com áudio do sistema, tornam-se frustrantes. Ficas sem forma óbvia de fazer algo que parece que devia ser básico.

O Que Os Controladores de Áudio Virtuais Fazem

Como o macOS não vai criar um caminho de loopback por ti, a solução é criar um tu mesmo usando um controlador de áudio virtual.

Um controlador de áudio virtual é um plugin do CoreAudio que se regista no HAL como dispositivo de saída e dispositivo de entrada ao mesmo tempo. Quando encaminhas o áudio do sistema para esta saída virtual, o controlador pega nesse áudio e disponibiliza-o na entrada virtual correspondente. Qualquer aplicação que possa ler de um microfone (Zoom, QuickTime, OBS, Discord) pode agora captar o áudio do sistema seleccionando o dispositivo virtual como fonte de entrada.

Em termos técnicos, o controlador cria um ring buffer que fica entre o lado da saída e o lado da entrada. As amostras de áudio escritas na saída são lidas de volta da entrada. Para o resto do macOS, parece um microfone normal. Mas esse “microfone” está, na verdade, a transportar o que o Mac estiver a tocar.

Isto não é um hack ou exploit. O framework CoreAudio da Apple suporta explicitamente plugins HAL de terceiros. É a forma sancionada de estender as capacidades de áudio do macOS. O controlador instala-se em /Library/Audio/Plug-Ins/HAL/ e exige uma palavra-passe de administrador, razão pela qual as ferramentas de áudio virtual pedem permissões elevadas durante a configuração.

Uma Breve História das Ferramentas de Loopback de Áudio Mac

A necessidade de dispositivos de áudio virtuais no macOS não é nova. As pessoas andam a contornar esta limitação há mais de uma década.

Soundflower foi uma das primeiras soluções. Era uma extensão de kernel de código aberto que criava dispositivos de áudio virtuais no macOS. Durante anos foi a resposta de eleição em fóruns e tutoriais. Mas o Soundflower foi abandonado pelo programador original, e à medida que a Apple eliminou as extensões de kernel, o Soundflower tornou-se cada vez mais instável. Em versões modernas do macOS, frequentemente falha na instalação ou causa falhas de áudio.

BlackHole pegou onde o Soundflower parou. É um controlador de áudio virtual de código aberto que é activamente mantido e funciona em versões actuais do macOS. O BlackHole é sólido, mas é um tubo de áudio em bruto. Quando encaminhas o áudio do sistema para o BlackHole, deixas de o ouvir pelos altifalantes a menos que crieis manualmente um dispositivo multi-saída usando o utilitário Configuração Áudio MIDI da Apple. Para pessoas confortáveis com esse tipo de configuração, o BlackHole funciona bem. Para todos os outros, é um processo confuso que envolve fazer malabarismo com vários dispositivos de áudio e esperar que tenhas configurado tudo correctamente.

Loopback da Rogue Amoeba é uma aplicação paga (99 USD) que fornece uma interface polida para criar dispositivos de áudio virtuais com encaminhamento por aplicação. É poderosa, mas foi desenhada para profissionais de áudio que precisam de controlo granular sobre que aplicações enviam áudio para onde. Para alguém que só quer partilhar áudio do sistema numa chamada do Zoom, o Loopback pode parecer comprar uma cozinha comercial quando só precisavas de uma torradeira.

A Solução Moderna

O Soundshine tem uma abordagem mais simples. Instala um controlador HAL CoreAudio leve e dá-te um microfone virtual que transporta o áudio do sistema. Não há comandos de terminal para correr, não há dispositivos multi-saída para configurar no Configuração Áudio MIDI e não há diagramas de encaminhamento complexos para descobrir.

Instalas o Soundshine, e um assistente de configuração guiada trata da instalação do controlador em cerca de 30 segundos. Depois disso, um ícone na barra de menus dá-te um único interruptor para activar ou desactivar o encaminhamento de áudio. Quando está activo, “Soundshine Microphone” aparece como entrada de microfone em qualquer aplicação. Selecciona-o no Zoom, Google Meet, QuickTime, OBS ou no que estiveres a usar, e o áudio do sistema flui.

Os teus altifalantes continuam a funcionar normalmente o tempo todo. O Soundshine passa o áudio para o teu dispositivo de saída real em simultâneo, por isso ouves tudo o que os participantes ouvem. O áudio mantém-se digital de ponta a ponta a 48 kHz, 32-bit float estéreo, por isso não há perda de qualidade.

A Conclusão

O macOS não te deixa partilhar áudio do sistema porque a Apple deixou de fora intencionalmente um caminho de loopback entre saídas e entradas de áudio. É uma decisão de design centrada na privacidade, e é pouco provável que mude. A solução é um controlador de áudio virtual que cria a ponte que o CoreAudio não vai criar.

Se queres a versão mais simples dessa solução, sem configuração manual e sem necessitar de formação em engenharia de áudio, experimenta o Soundshine.

Encaminha qualquer áudio, para qualquer lado

O Soundshine cria um microfone virtual a partir do áudio do sistema para que todas as aplicações funcionem sem complicações. Sem terminal, sem extensões de kernel.

Descarregar grátis