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.
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.
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.
Links úteis
Agradecimentos
Agradecemos a Michael Wilson por revisar esta postagem.