В 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);
});
}
Спасибо за ответ. Я закончил тем, что использовал метод ниже.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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