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

François Beaufort
François Beaufort

A interface digital de instrumentos musicais (MIDI) é uma forma padrão de comunicação entre computadores, hardware e instrumentos musicais eletrônicos. A API Web MIDI permite que os sites controlem sintetizadores virtuais, baterias e outros instrumentos conectando-se ao teclado ou controlador MIDI do usuário.

Compatibilidade com navegadores

  • 43
  • 79
  • 108
  • x

Origem

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

Isso significa que toda a API Web MIDI agora é protegida por uma solicitação 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 ao chamar navigator.requestMIDIAccess() quando o acesso ainda não tiver sido 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 para mensagens SysEx com navigator.requestMIDIAccess({ sysEx: true }) apenas se o site realmente precisar desse recurso. As strings de solicitações de permissão do Chrome podem mudar no futuro.

testes

Essa mudança está sendo lançada gradualmente no Chrome 124. Talvez seja necessário executar o Chrome com a chave da 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 exige permissão do usuário nos navegadores Chrome e Firefox.

Feedback

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

Agradecimentos

Agradecemos a Michael Wilson por analisar esta postagem.