Müzik Enstrümanı Dijital Arayüzü (MIDI), elektronik müzik enstrümanı, donanımlar ve bilgisayarların standart iletişim yöntemidir. Web MIDI API, web sitelerinin kullanıcının MIDI klavyesine veya kumanda cihazına bağlanarak sanal sentezleyicileri, elektronik baterileri veya diğer enstrümanları kontrol etmesine olanak tanır.
Web MIDI API ile bağlı MIDI cihazlarına özgürce erişmeyle ilgili güvenlik endişeleri nedeniyle W3C Audio Çalışma Grubu, Web MIDI spesifikasyonundaki tüm MIDI API kullanımı için açık izin şartı talep etti. Daha önce Chrome'da yalnızca gelişmiş MIDI kullanımı (SysEx mesajları) için geçerli olan bu değişiklik artık standart MIDI etkileşimlerini de kapsayacak şekilde genişletildi.
Bu, Web MIDI API'sinin tamamının artık bir izin isteminin arkasında olduğu anlamına gelir. Bu değişiklik, Chrome 124'ten itibaren kademeli olarak uygulanmaktadır.
Aşağıdaki kod, kullanıcı henüz erişim izni vermediğinde navigator.requestMIDIAccess()
çağrısının tetiklenerek tetiklenen izin isteminin nasıl işleneceğini gösterir.
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.
}
}
Web sitenizin bu özelliğe kesinlikle ihtiyacı varsa navigator.requestMIDIAccess({ sysEx: true })
ile SysEx mesajları desteği isteğinde bulunun yalnızca. Chrome izin istemi dizeleri gelecekte değişebilir.
Test
Bu değişiklik, Chrome 124'te kademeli olarak kullanıma sunulmaktadır. Özelliği cihazınızda yerel olarak etkinleştirmek için Chrome'u --enable-features=BlockMidiByDefault
komut satırı anahtarıyla çalıştırmanız gerekebilir.
Bu değişikliği https://permission.site web sitesinde "MIDI" ve "MIDI + SysEx" düğmelerini tıklayarak test edin.
Tarayıcı desteği
MIDI cihazlarına erişim için hem Chrome hem de Firefox tarayıcılarda kullanıcı izni gerekir.
Geri bildirim
Chrome ekibi ve web standartları topluluğu, bu değişiklikle ilgili deneyimlerinizi öğrenmek istiyor. Mevcut sorunlara yorum yaparak veya yeni GitHub sorunları bildirerek geri bildirimde bulunun.
Faydalı bağlantılar
Teşekkür ederiz
Bu yayını inceleyen Michael Wilson'a teşekkür ederiz.