Hiện tại, để truy cập vào thiết bị MIDI cần có sự cho phép của người dùng

François Beaufort
François Beaufort

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.

Hỗ trợ trình duyệt

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 108.
  • Safari: không được hỗ trợ.

Nguồn

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.

Ảnh chụp màn hình lời nhắc cấp quyền sử dụng Web MIDI trong Chrome.
Lời nhắc cấp quyền Web MIDI trong Chrome.

Đ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.

Xác nhận

Cảm ơn Michael Wilson đã xem xét bài đăng này.