Есть ли способ передать события мультимедийных клавиш обратно в Windows из Chrome?

В Chrome 73 добавлена ​​поддержка мультимедийных ключей для воспроизведения видео в браузере (например, YouTube). Я пытаюсь сделать расширение для Chrome, которое позволит вам использовать мультимедийные клавиши как для Chrome, так и для системных носителей (например, обычное управление для Spotify или медиаплееров). Я могу перехватить событие медиа-ключа в Chrome с помощью MediaSession API, но понятия не имею, можно ли также «освободить» событие медиа-ключа и позволить ему распространиться на следующий системный медиа-процесс. Кто-нибудь даже знает это, если возможно / как я мог это сделать?

Вот как я в настоящее время фиксирую ключевые события мультимедиа («воспроизведение», «пауза», «следующий трек» и «предыдущий трек»):

window.onload = function() {

    navigator.mediaSession.setActionHandler('play', function() {
      console.info('play media key pressed');
      playMedia(document);
    });

}

Не представляется возможным, что довольно странно — попробуйте задать вопрос в репозиторий API. Обходным путем может быть написание отдельной утилиты, которая отправит медиаключ(и) в очередь событий ОС и вызовет его из вашего расширения через нативныйОбмен сообщениями.

wOxxOm 27.05.2019 05:06

Спасибо за ответ. Я закончил тем, что использовал метод ниже.

Alec 29.05.2019 22:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не удалось найти способ заставить JS воспроизводить системные медиафайлы, поэтому, чтобы обойти это, я отправил сообщение из сценариев контента в фоновый процесс, который затем отправил сообщение на каждую вкладку, предлагая им остановить соответствующие видео (пауза его и удалите источник), чтобы пользователь мог воспроизвести системный медиафайл, а затем перезапустить видео.

Другие вопросы по теме