O acesso a dispositivos MIDI agora exige permissão do usuário

François Beaufort
François Beaufort

A Interface digital para instrumentos musicais (MIDI) é uma maneira padrão de instrumentos musicais eletrônicos, hardwares e computadores se comunicarem. A API Web MIDI permite que os sites controlem sintetizadores virtuais, baterias e outros instrumentos ao se conectarem ao teclado ou controlador MIDI do usuário.

Compatibilidade com navegadores

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 108.
  • Safari: não é compatível.

Origem

Devido a problemas de segurança para acessar livremente dispositivos MIDI conectados com a API Web MIDI, o Grupo de trabalho de áudio do W3C solicitou um requisito de permissão explícita para todo o uso da API MIDI na especificação Web MIDI. Essa alteração, anteriormente válida apenas para uso avançado de MIDI (mensagens SysEx) no Chrome, agora também se estende a interações MIDI padrão.

Isso significa que toda a API Web MIDI agora está protegida por um comando de permissão. Essa mudança está sendo lançada gradualmente a partir do Chrome 124.

Captura de tela da solicitação de permissão Web MIDI no Chrome.
Solicitação de permissão Web MIDI no Chrome.

O código a seguir mostra como processar a solicitação de permissão acionada pela chamada navigator.requestMIDIAccess() quando o acesso ainda não foi concedido pelo usuário.

try {
  // Prompt user to access MIDI devices.
  const access = await navigator.requestMIDIAccess();
  // Get lists of available MIDI controllers...

} catch (error) {
  if (error.name === "SecurityError") {
    // The website is not allowed to control and reprogram MIDI devices.
  }
}

Solicite suporte a mensagens SysEx com navigator.requestMIDIAccess({ sysEx: true }) somente se o site precisar desse recurso. As strings de solicitação de permissão do Chrome podem mudar no futuro.

Teste

Essa mudança está sendo lançada gradualmente no Chrome 124. Talvez seja necessário executar o Chrome com a chave de linha de comando --enable-features=BlockMidiByDefault para ativá-lo localmente no dispositivo.

Teste essa alteração no site https://permission.site clicando nos botões "MIDI" e "MIDI + SysEx".

Suporte ao navegador

O acesso a dispositivos MIDI requer permissão de usuário nos navegadores Chrome e Firefox.

Feedback

A equipe do Chrome e a comunidade de padrões da Web querem saber sobre suas experiências com essa mudança. Envie feedback comentando sobre problemas atuais ou criando novos problemas do GitHub.

Agradecimentos

Agradecemos a Michael Wilson por revisar esta postagem.