Bluetooth-наушники обнаружение события кнопки в JavaScript - PullRequest
0 голосов
/ 25 ноября 2018

Я создаю веб-приложение, в котором обнаруживаю кнопку наушников.Мне удалось захватить событие кнопки наушников, когда они подключены. Теперь я пытаюсь захватить событие кнопки Bluetooth для наушников.Любая помощь в этом, пожалуйста?

Код для определения кнопки наушников.

 document.addEventListener('volumeupbutton', () => {
   //Do something here
 }, false);

Мне нужно что-то похожее на это.

Ответы [ 2 ]

0 голосов
/ 06 августа 2019

Вы можете использовать keydown and keyup события для реализации функции длительного нажатия.

// Imprementation of Long Press

const longPressTime = 1500;
let keyDownTimeout;
document.addEventListener('keydown', e => {
  if (keyDownTimeout) {
    return;
  }
  keyDownTimeout = setTimeout(() => {
    // button was held for 1500ms, consider it a long-press
    if (e.code === 'ArrowUp') {
      console.log("Action Performed");
      // do long-press action
    } else {
      console.log("Other action performed");
    }
  }, longPressTime);
});

document.addEventListener('keyup', e => {
  clearTimeout(keyDownTimeout);
  keyDownTimeout = 0;
});
Press any key

Вышеуказанные методы работают при длительном нажатии одной клавиши.См. KeyCode для кода ключа. Демо выше

0 голосов
/ 04 августа 2019

Я не верю, что использование встроенного события volumeupbutton позволит вам определить, как долго длился щелчок, чтобы определить, следует ли его рассматривать как увеличение громкости или пропуск отслеживания.Вместо этого вы должны иметь возможность использовать события keyup / keydown в сочетании со свойством keyCode, чтобы определить, является ли это кнопкой громкости, например:

const longPressTime = 1500;
let volumeUpButtonTimeout;
const volumeButtonKeyCode = 0; // you'll need to determine the key code

// cross platform way to get the key code
const getKeyCode = e => {
  if (e.key !== undefined) {
    return e.key;
  } else if (e.keyIdentifier !== undefined) {
    return e.keyIdentifier;
  } else if (e.keyCode !== undefined) {
    return e.keyCode;
  }
}

document.addEventListener('keydown', e => {
  if (getKeyCode(e) == volumeButtonKeyCode) {
    volumeUpButtonTimeout = setTimeout(() => {
      // button was held for 1500ms, consider it a long-press
      // do long-press action
    }, longPressTime)
  }
});

document.addEventListener('keyup', e => {
  if (getKeyCode(e) == volumeButtonKeyCode) {
    clearTimeout(volumeUpButtonTimeout);
  }
});

. Вы можете использовать этот код, чтобы определить, какой keyCode соответствуеткнопка увеличения громкости:

document.addEventListener('keyup', e => {
  console.log(e.keyCode);
});
...