Navigator: метод requestMIDIAccess()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Метод requestMIDIAccess() интерфейса Navigator возвращает Promise, представляющий запрос на доступ к MIDI-устройствам на системе пользователя. Этот метод является частью API Web MIDI, который предоставляет средства для доступа, перечисления и управления MIDI-устройствами.
Этот метод может запросить у пользователя разрешение на доступ к MIDI-устройствам, доступным на его системе, или может использовать ранее установленное предпочтение для предоставления или отказа в доступе. Если разрешение предоставлено, то Promise разрешается, и возвращается объект MIDIAccess.
Синтаксис
requestMIDIAccess() requestMIDIAccess(MIDIOptions)
Параметры
MIDIOptionsНеобязательно-
Объект
Object, представляющий параметры для передачи в метод. Эти параметры:sysex-
Значение
Boolean, которое, если установлено в значениеtrue, позволяет отправлять и получать сообщения системного исключения (sysex). Значение по умолчанию —false. software-
Значение
Boolean, которое, если установлено в значениеtrue, позволяет системе использовать любые установленные программные синтезаторы. Значение по умолчанию —false.
Возвращаемое значение
Promise, который разрешается с объектом MIDIAccess.
Исключения
-
AbortErrorDOMException -
Выбрасывается, если документ или страница закрываются из-за перехода пользователя.
-
InvalidStateErrorDOMException -
Выбрасывается, если основная система генерирует какие-либо ошибки.
-
NotSupportedErrorDOMException -
Выбрасывается, если функция или параметры не поддерживаются системой.
-
SecurityErrorDOMException -
Выбрасывается, если пользователь или система запрещают применению создание объекта MIDIAccess с запрошенными параметрами, или если документ не имеет разрешения на использование функции (например, из-за Политики разрешений, или если пользователь ранее отказал в запросе на разрешение).
Требования безопасности
Доступ к API ограничен следующими условиями:
- Метод должен вызываться в безопасном контексте.
- Доступ может быть ограничен
midiHTTP Политики разрешений. - Пользователь должен явно предоставить разрешение на использование API через механизм, специфичный для браузера, или ранее предоставил разрешение. Обратите внимание, что если доступ запрещен политикой разрешений, он не может быть предоставлен разрешением пользователя.
Статус разрешения можно запросить с помощью метода API разрешений navigator.permissions.query(), передавая описатель разрешения с параметром midi и (необязательным) свойством sysex:
navigator.permissions.query({ name: "midi", sysex: true }).then((result) => {
if (result.state === "granted") {
// Access granted.
} else if (result.state === "prompt") {
// Using API will prompt for permission
}
// Permission was denied by user prompt or permission policy
});
Примеры
Запрос доступа к MIDI
В следующем примере метод Navigator.requestMIDIAccess() возвращает объект MIDIAccess, который предоставляет доступ к информации о входных и выходных портах MIDI.
navigator.requestMIDIAccess().then((access) => {
// Get lists of available MIDI controllers
const inputs = access.inputs.values();
const outputs = access.outputs.values();
// …
});
Спецификации
| Спецификация |
|---|
| Web MIDI API # dom-navigator-requestmidiaccess |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
requestMIDIAccess |
43 | 79 | 108Доступ к API ограничен установкой дополнения для разрешений сайта (дополнение для разрешений сайта) (запрос у пользователя), безопасный контекст иPermission Policy: midi. |
30 | Нет | 43 | Нет | 30 | Нет | 4.0 | 43 |
secure_context_required |
43 | 79 | 108 | 30 | Нет | 43 | Нет | 30 | Нет | 4.0 | 43 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMIDIAccess