diff --git a/api/js/etemplate/CustomHtmlElements/multi-video.ts b/api/js/etemplate/CustomHtmlElements/multi-video.ts
index cf5d4b03da..8c49546116 100644
--- a/api/js/etemplate/CustomHtmlElements/multi-video.ts
+++ b/api/js/etemplate/CustomHtmlElements/multi-video.ts
@@ -304,7 +304,7 @@ class multi_video extends HTMLElement {
*/
get paused()
{
- return this.__getActiveVideo()[0].node.paused;
+ return this.__getActiveVideo()[0]?.node?.paused;
}
/**
@@ -323,7 +323,7 @@ class multi_video extends HTMLElement {
*/
get muted()
{
- return this.__getActiveVideo()[0].node.muted;
+ return this.__getActiveVideo()[0]?.node?.muted;
}
/**
@@ -331,7 +331,7 @@ class multi_video extends HTMLElement {
*/
get ended()
{
- return this._videos[this._videos.length-1].node.ended;
+ return this._videos[this._videos.length-1]?.node?.ended;
}
/**
@@ -350,7 +350,7 @@ class multi_video extends HTMLElement {
*/
get playbackRate()
{
- return this.__getActiveVideo()[0].node.playbackRate;
+ return this.__getActiveVideo()[0]?.node?.playbackRate;
}
/**
@@ -368,7 +368,7 @@ class multi_video extends HTMLElement {
*/
get volume()
{
- return this.__getActiveVideo()[0].node.volume;
+ return this.__getActiveVideo()[0]?.node?.volume;
}
@@ -380,7 +380,7 @@ class multi_video extends HTMLElement {
play()
{
this.__playing = true;
- return this.__getActiveVideo()[0].node.play();
+ return this.__getActiveVideo()[0]?.node?.play();
}
/**
@@ -389,7 +389,7 @@ class multi_video extends HTMLElement {
pause()
{
this.__playing = false;
- this.__getActiveVideo()[0].node.pause();
+ this.__getActiveVideo()[0]?.node?.pause();
}
}
diff --git a/api/js/etemplate/et2_widget_video.ts b/api/js/etemplate/et2_widget_video.ts
index cde392eb4e..a284773733 100644
--- a/api/js/etemplate/et2_widget_video.ts
+++ b/api/js/etemplate/et2_widget_video.ts
@@ -19,6 +19,7 @@ import { et2_baseWidget } from './et2_core_baseWidget'
import {ClassWithAttributes} from "./et2_core_inheritance";
import {WidgetConfig, et2_register_widget} from "./et2_core_widget";
import {et2_IDOMNode} from "./et2_core_interfaces";
+import "./CustomHtmlElements/multi-video";
/**
* This widget represents the HTML5 video tag with all its optional attributes
@@ -61,6 +62,12 @@ export class et2_video extends et2_baseWidget implements et2_IDOMNode
"type": "string",
"description": "Defines the type the stream source provided"
},
+ "multi_src": {
+ "name": "Multi Video source",
+ "type": "boolean",
+ "default": false,
+ "description": "creates a multi-video tag in order to render all provided video sources"
+ },
"muted": {
"name": "Audio control",
"type": "boolean",
@@ -167,7 +174,7 @@ export class et2_video extends et2_baseWidget implements et2_IDOMNode
return;
}
//Create Video tag
- this.video = jQuery(document.createElement(this._isYoutube()?"div":"video"))
+ this.video = jQuery(document.createElement(this._isYoutube()?"div":(this.options.multi_src ? "multi-video" : "video")))
.addClass('et2_video')
.attr('id', this.dom_id);