More error checking. Increased stability in safari
This commit is contained in:
parent
8da698ab82
commit
e2bdad02f4
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -5,7 +5,7 @@
|
|||||||
"dependencies": ["panel_custom", "websocket_api", "http", "frontend", "lovelace"],
|
"dependencies": ["panel_custom", "websocket_api", "http", "frontend", "lovelace"],
|
||||||
"codeowners": [],
|
"codeowners": [],
|
||||||
"requirements": [],
|
"requirements": [],
|
||||||
"version": "2.0.0b3",
|
"version": "2.0.0b4",
|
||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"config_flow": true
|
"config_flow": true
|
||||||
}
|
}
|
||||||
|
@ -93,6 +93,14 @@ class BrowserModRegisteredBrowsersCard extends LitElement {
|
|||||||
@change=${this.toggleCameraEnabled}
|
@change=${this.toggleCameraEnabled}
|
||||||
></ha-switch>
|
></ha-switch>
|
||||||
</ha-settings-row>
|
</ha-settings-row>
|
||||||
|
${window.browser_mod?.cameraError
|
||||||
|
? html`
|
||||||
|
<ha-alert alert-type="error">
|
||||||
|
Setting up the device camera failed. Make sure you have
|
||||||
|
allowed use of the camera in your browser.
|
||||||
|
</ha-alert>
|
||||||
|
`
|
||||||
|
: ""}
|
||||||
${this._renderInteractionAlert()}
|
${this._renderInteractionAlert()}
|
||||||
${this._renderFKBSettingsInfo()}
|
${this._renderFKBSettingsInfo()}
|
||||||
`
|
`
|
||||||
|
@ -3,6 +3,7 @@ export const CameraMixin = (SuperClass) => {
|
|||||||
private _video;
|
private _video;
|
||||||
private _canvas;
|
private _canvas;
|
||||||
private _framerate;
|
private _framerate;
|
||||||
|
public cameraError;
|
||||||
|
|
||||||
// TODO: Enable WebRTC?
|
// TODO: Enable WebRTC?
|
||||||
// https://levelup.gitconnected.com/establishing-the-webrtc-connection-videochat-with-javascript-step-3-48d4ae0e9ea4
|
// https://levelup.gitconnected.com/establishing-the-webrtc-connection-videochat-with-javascript-step-3-48d4ae0e9ea4
|
||||||
@ -10,6 +11,7 @@ export const CameraMixin = (SuperClass) => {
|
|||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this._framerate = 2;
|
this._framerate = 2;
|
||||||
|
this.cameraError = false;
|
||||||
|
|
||||||
this._setup_camera();
|
this._setup_camera();
|
||||||
}
|
}
|
||||||
@ -45,14 +47,22 @@ export const CameraMixin = (SuperClass) => {
|
|||||||
|
|
||||||
if (!navigator.mediaDevices) return;
|
if (!navigator.mediaDevices) return;
|
||||||
|
|
||||||
const stream = await navigator.mediaDevices.getUserMedia({
|
try {
|
||||||
video: true,
|
const stream = await navigator.mediaDevices.getUserMedia({
|
||||||
audio: false,
|
video: true,
|
||||||
});
|
audio: false,
|
||||||
|
});
|
||||||
|
|
||||||
video.srcObject = stream;
|
video.srcObject = stream;
|
||||||
video.play();
|
video.play();
|
||||||
this.update_camera();
|
this.update_camera();
|
||||||
|
} catch (e) {
|
||||||
|
if (e.name !== "NotAllowedError") throw e;
|
||||||
|
else {
|
||||||
|
this.cameraError = true;
|
||||||
|
this.fireEvent("browser-mod-config-update");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async update_camera() {
|
async update_camera() {
|
||||||
|
@ -57,14 +57,22 @@ export const RequireInteractMixin = (SuperClass) => {
|
|||||||
vPlay
|
vPlay
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this._interactionResolve();
|
this._interactionResolve();
|
||||||
|
video.pause();
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
if (e.name === "AbortError") this._interactionResolve();
|
if (e.name === "AbortError") {
|
||||||
|
this._interactionResolve();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
video.pause();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener("pointerdown", this._interactionResolve);
|
window.addEventListener(
|
||||||
|
"pointerdown",
|
||||||
|
() => {
|
||||||
|
this._interactionResolve();
|
||||||
|
},
|
||||||
|
{ once: true }
|
||||||
|
);
|
||||||
|
|
||||||
// if (this.fully) this._interactionResolve();
|
// if (this.fully) this._interactionResolve();
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "browser_mod",
|
"name": "browser_mod",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2.0.0b3",
|
"version": "2.0.0b4",
|
||||||
"description": "",
|
"description": "",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user