11import { Component , Input , OnInit } from '@angular/core' ;
22import { MediaViewerItem } from '../../../core/shared/media-viewer-item.model' ;
3+ import { languageHelper } from './language-helper' ;
4+ import { CaptionInfo } from './caption-info' ;
35
46/**
57 * This componenet renders a video viewer and playlist for the media viewer
@@ -26,9 +28,39 @@ export class MediaViewerVideoComponent implements OnInit {
2628
2729 ngOnInit ( ) {
2830 this . isCollapsed = false ;
29- this . filteredMedias = this . medias . filter (
30- ( media ) => media . format === 'audio' || media . format === 'video'
31- ) ;
31+ this . filteredMedias = this . medias . filter ( ( media ) => media . format === 'audio' || media . format === 'video' ) ;
32+ }
33+
34+ /**
35+ * This method check if there is caption file for the media
36+ * The caption file name is the media name plus "-" following two letter
37+ * language code and .vtt suffix
38+ *
39+ * html5 video only support WEBVTT format
40+ *
41+ * Two letter language code reference
42+ * https://www.w3schools.com/tags/ref_language_codes.asp
43+ */
44+ getMediaCap ( name : string ) : CaptionInfo [ ] {
45+ let filteredCapMedias : MediaViewerItem [ ] ;
46+ let capInfos : CaptionInfo [ ] = [ ] ;
47+ filteredCapMedias = this . medias
48+ . filter ( ( media ) => media . minetype === 'text/vtt' )
49+ . filter ( ( media ) => media . bitstream . name . substring ( 0 , ( media . bitstream . name . length - 7 ) ) . toLowerCase ( ) === name . toLowerCase ( ) ) ;
50+
51+ if ( filteredCapMedias ) {
52+ filteredCapMedias
53+ . forEach ( ( media , index ) => {
54+ let srclang : string = media . bitstream . name . slice ( - 6 , - 4 ) . toLowerCase ( ) ;
55+ //capInfos[index] = new CaptionInfo(
56+ capInfos . push ( new CaptionInfo (
57+ media . bitstream . _links . content . href ,
58+ srclang ,
59+ languageHelper [ srclang ]
60+ ) ) ;
61+ } ) ;
62+ }
63+ return capInfos ;
3264 }
3365
3466 /**
0 commit comments