Skip to content
Projects
Groups
Snippets
Help
Sign in / Register
Toggle navigation
Minds Frontend
Project overview
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
350
Merge Requests
59
CI / CD
Security & Compliance
Packages
Wiki
Snippets
Members
Collapse sidebar
Close sidebar
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Minds
Minds Frontend
Commits
a8729b07
Commit
a8729b07
authored
22 minutes ago
by
Emiliano Balbuena
Browse files
Options
Download
(feat): Change dimensions on-the-fly when video metadata is loaded
parent
e6fe8635
epic/modal-pager
1 merge request
!716
WIP: Modal pager
Pipeline
#108208199
running with stages
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
1 deletion
+44
-1
src/app/modules/media/components/video-player/player.component.html
View file @
a8729b07
...
...
@@ -21,6 +21,7 @@
(plyrPlay)=
"onPlayed($event)"
(plyrEnterFullScreen)=
"fullScreenChange.next($event)"
(plyrExitFullScreen)=
"fullScreenChange.next($event)"
(plyrLoadedMetadata)=
"emitDimensions($event)"
>
</plyr>
</div>
...
...
This diff is collapsed.
src/app/modules/media/components/video-player/player.component.ts
View file @
a8729b07
...
...
@@ -32,6 +32,11 @@ export class MindsVideoPlayerComponent implements OnInit, OnDestroy {
*/
@
Output
()
fullScreenChange
:
EventEmitter
<
Event
>
=
new
EventEmitter
();
/**
* Dimension change event for parent components
*/
@
Output
()
dimensions
:
EventEmitter
<
any
>
=
new
EventEmitter
<
any
>
();
/**
* This is the video player component
*/
...
...
@@ -142,4 +147,26 @@ export class MindsVideoPlayerComponent implements OnInit, OnDestroy {
return
;
}
}
/**
* Emits dimensions to parent component,
* called after HTML5 metadata is loaded
* @param e
*/
emitDimensions
(
e
)
{
try
{
const
media
=
e
.
detail
.
plyr
.
media
;
if
(
!
media
)
{
return
;
}
this
.
dimensions
.
next
({
width
:
media
.
videoWidth
,
height
:
media
.
videoHeight
,
});
}
catch
(
e
)
{
console
.
info
(
'
Error emitting dimensions
'
,
e
);
}
}
}
This diff is collapsed.
src/app/modules/media/modal/modal.component.html
View file @
a8729b07
...
...
@@ -54,6 +54,7 @@
isModal=
"true"
autoplay=
"true"
(fullScreenChange)=
"onFullscreenChange($event)"
(dimensions)=
"onDimensions($event)"
></m-videoPlayer>
</div>
...
...
This diff is collapsed.
src/app/modules/media/modal/modal.component.ts
View file @
a8729b07
...
...
@@ -368,8 +368,13 @@ export class MediaModalComponent implements OnInit, OnDestroy {
// (but don't actually redirect)
this
.
location
.
replaceState
(
this
.
pageUrl
);
// * DIMENSION CALCULATIONS * ---------------------------------------------------------------------
// Set Dimensions based on entity
this
.
setEntityDimensions
();
}
// * DIMENSION CALCULATIONS * ---------------------------------------------------------------------
setEntityDimensions
()
{
switch
(
this
.
contentType
)
{
case
'
video
'
:
case
'
image
'
:
...
...
@@ -549,6 +554,15 @@ export class MediaModalComponent implements OnInit, OnDestroy {
return
Math
.
round
(
this
.
mediaHeight
*
this
.
aspectRatio
);
}
onDimensions
(
$event
)
{
if
(
$event
.
width
&&
$event
.
height
)
{
this
.
entity
.
width
=
$event
.
width
;
this
.
entity
.
height
=
$event
.
height
;
this
.
setEntityDimensions
();
}
}
// * FULLSCREEN * --------------------------------------------------------------------------------
// Listen for fullscreen change event in case user enters/exits full screen without clicking button
@
HostListener
(
'
document:fullscreenchange
'
,
[
'
$event
'
])
...
...
This diff is collapsed.
Please
register
or
sign in
to comment