mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-02 09:15:22 +03:00
Request wakeLock when in fullscreen.
This commit is contained in:
parent
9edf38347c
commit
2b5eef8a4f
@ -8,6 +8,20 @@ export default function JSMpegPlayer({ camera, width, height }) {
|
|||||||
const url = `${baseUrl.replace(/^http/, 'ws')}/live/${camera}`
|
const url = `${baseUrl.replace(/^http/, 'ws')}/live/${camera}`
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
let wakeLock = null;
|
||||||
|
|
||||||
|
const requestWakeLock = async () => {
|
||||||
|
if (!navigator.wakeLock) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
wakeLock = await navigator.wakeLock.request('screen');
|
||||||
|
} catch (err) {
|
||||||
|
console.warn(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const video = new JSMpeg.VideoElement(
|
const video = new JSMpeg.VideoElement(
|
||||||
playerRef.current,
|
playerRef.current,
|
||||||
url,
|
url,
|
||||||
@ -16,6 +30,8 @@ export default function JSMpegPlayer({ camera, width, height }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const fullscreen = () => {
|
const fullscreen = () => {
|
||||||
|
requestWakeLock();
|
||||||
|
|
||||||
if(video.els.canvas.webkitRequestFullScreen) {
|
if(video.els.canvas.webkitRequestFullScreen) {
|
||||||
video.els.canvas.webkitRequestFullScreen();
|
video.els.canvas.webkitRequestFullScreen();
|
||||||
}
|
}
|
||||||
@ -24,9 +40,26 @@ export default function JSMpegPlayer({ camera, width, height }) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const fullscreenchange = () => {
|
||||||
|
if (document.webkitIsFullScreen) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wakeLock === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
wakeLock.release().then(() => {
|
||||||
|
wakeLock = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
video.els.canvas.addEventListener('click',fullscreen)
|
video.els.canvas.addEventListener('click',fullscreen)
|
||||||
|
video.els.canvas.addEventListener('webkitfullscreenchange',fullscreenchange)
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
video.els.canvas.removeEventListener('click',fullscreen)
|
||||||
|
video.els.canvas.removeEventListener('webkitfullscreenchange',fullscreenchange)
|
||||||
video.destroy();
|
video.destroy();
|
||||||
};
|
};
|
||||||
}, [url]);
|
}, [url]);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user