Я создаю плагин для soundcloud.com (и YouTube), который должен управлять музыкой с помощью глобальных сочетаний клавиш через локальный процесс node.js, который взаимодействует с веб-частью через socket.io.
Я могу просто контролировать элемент <video>
с помощью querySelector
на YouTube.В soundcloud нигде на странице нет элемента <audio>
, поэтому он, вероятно, должен использовать WebAudioAPI .До сих пор я могу обойти это хакерским способом, вызывая .click()
на кнопках воспроизведения и пропуска.
Я также хочу контролировать громкость, и обе мои идеи, похоже, не работают.
Я пытался переместить ползунок громкости, создав mousedown
, mousemove
и mouseup
MouseEvents на дескрипторе ползунка, но это не помогло.
const e = {
down: new MouseEvent("mousedown", {
cancelable: false,
}),
up: new MouseEvent("mouseup", {
cancelable: false,
}),
move: new MouseEvent("mousemove", {
cancelable: false,
movementY: 10,
}),
test(el) {
el.dispatchEvent(e.down)
el.dispatchEvent(e.move)
el.dispatchEvent(e.up)
},
}
// the volume slider handle
e.test($0)
И я искал способ добраться до объекта контекста Audio, переопределив функцию AudioContext()
и выполнив поиск в javascript-файле soundcloud на предмет «AudioContext».
Это только дваидеи о том, как решить это, что я могу придумать.
tl; dr
Есть ли способ управления громкостью звука на soundcloud.com через javascript?