Я не верю, что использование встроенного события 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);
});