Giao diện kỹ thuật số cho nhạc cụ (MIDI) là một phương thức tiêu chuẩn giúp nhạc cụ điện tử, phần cứng và máy tính giao tiếp với nhau. Web MIDI API cho phép các trang web điều khiển nhạc cụ tổng hợp ảo, máy đánh trống hoặc các nhạc cụ khác bằng cách kết nối với bàn phím hoặc bộ điều khiển MIDI của người dùng.
Do mối lo ngại về bảo mật khi tự do truy cập vào các thiết bị MIDI đã kết nối bằng API Web MIDI, Nhóm làm việc về âm thanh của W3C đã yêu cầu yêu cầu cấp quyền rõ ràng đối với tất cả hoạt động sử dụng API MIDI trong quy cách Web MIDI. Sự thay đổi này, trước đây chỉ áp dụng cho việc sử dụng MIDI nâng cao (thông báo SysEx) trong Chrome, nhưng giờ đây cũng áp dụng cho các hoạt động tương tác MIDI chuẩn.
Điều này có nghĩa là toàn bộ Web MIDI API hiện được kiểm soát bằng lời nhắc cấp quyền. Thay đổi này sẽ được triển khai từng bước kể từ Chrome 124.
Đoạn mã sau đây cho bạn biết cách xử lý lời nhắc cấp quyền được kích hoạt bằng cách gọi navigator.requestMIDIAccess()
khi người dùng chưa cấp quyền truy cập.
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.
}
}
Chỉ yêu cầu hỗ trợ tin nhắn SysEx bằng navigator.requestMIDIAccess({ sysEx: true })
nếu trang web của bạn thực sự cần tính năng này. Chuỗi lời nhắc cấp quyền của Chrome có thể thay đổi trong tương lai.
Thử nghiệm
Thay đổi này đang được triển khai từng bước trong Chrome 124. Bạn có thể cần chạy Chrome bằng bật/tắt dòng lệnh --enable-features=BlockMidiByDefault
để bật tính năng này trên thiết bị của mình.
Kiểm thử thay đổi này trên trang web https://permission.site bằng cách nhấp vào các nút "MIDI" và "MIDI + SysEx".
Hỗ trợ trình duyệt
Bạn cần có quyền của người dùng để truy cập vào thiết bị MIDI trong cả trình duyệt Chrome và Firefox.
Phản hồi
Nhóm Chrome và cộng đồng tiêu chuẩn web muốn biết trải nghiệm của bạn về thay đổi này. Hãy gửi ý kiến phản hồi bằng cách bình luận về các vấn đề trên GitHub hiện có hoặc gửi vấn đề mới.
Các đường liên kết hữu ích
Xác nhận
Cảm ơn Michael Wilson đã xem xét bài đăng này.