@@ -10,6 +10,11 @@ function sepiaFW_build_ui_cards_embed(){
1010 - Make sure only one is active
1111 - Implement async. callback with msgId and timeout
1212 */
13+ var playerWidgets = {
14+ spotify : "<assist_server>/widgets/mp-spotify.html" ,
15+ apple_music : "<assist_server>/widgets/mp-apple-music.html" ,
16+ youtube : "<assist_server>/widgets/mp-youtube.html"
17+ }
1318
1419 var activeMediaPlayers = { } ;
1520
@@ -46,7 +51,7 @@ function sepiaFW_build_ui_cards_embed(){
4651 //Create media player DOM element
4752 function createMediaPlayerDomElement ( id , contentUrl , onLoadHandler ) {
4853 //card
49- var mediaPlayerDiv = document . createElement ( 'DIV ' ) ;
54+ var mediaPlayerDiv = document . createElement ( 'div ' ) ;
5055 mediaPlayerDiv . id = id ;
5156 mediaPlayerDiv . className = "embeddedWebPlayer cardBodyItem fullWidthItem" ;
5257 //iframe
@@ -59,8 +64,13 @@ function sepiaFW_build_ui_cards_embed(){
5964 //iframe.allow = ...;
6065 //iframe.sandbox = ...;
6166 mediaPlayerDiv . appendChild ( iframe ) ;
67+ //loading overlay
68+ var loadOverlay = document . createElement ( 'div' ) ;
69+ loadOverlay . className = "cardItemOverlay" ;
70+ loadOverlay . innerHTML = "<p>Loading</p>" ;
71+ mediaPlayerDiv . appendChild ( loadOverlay ) ;
6272 return {
63- card : mediaPlayerDiv , iframe : iframe
73+ card : mediaPlayerDiv , iframe : iframe , overlay : loadOverlay
6474 }
6575 }
6676
@@ -100,22 +110,42 @@ function sepiaFW_build_ui_cards_embed(){
100110 } , "*" ) ;
101111 }
102112 thisPlayer . eventHandler = function ( ev ) {
103- //TODO: use
104113 console . error ( "ev" , playerId , ev ) ; //DEBUG
114+ if ( ev . state ) {
115+ stateHandler ( ev ) ;
116+ }
105117 }
106118
107119 //States
120+ var state = 0 ; //0: created, 1: ready, 2: playing, 3: paused, 10: error
121+
122+ function stateHandler ( ev ) {
123+ if ( ev . state == 1 ) {
124+ //on-ready
125+ state = ev . state ;
126+ if ( ev . size && ev . size . height ) {
127+ thisPlayer . iframe . style . height = ev . size . height ;
128+ }
129+ setTimeout ( function ( ) { $ ( mpObj . overlay ) . remove ( ) ; } , 500 ) ;
130+ } else if ( ev . state == 2 ) {
131+ //on-play
132+ state = ev . state ;
133+ } else if ( ev . state == 3 ) {
134+ //on-pause
135+ state = ev . state ;
136+ } else if ( ev . state == 10 ) {
137+ //on-error
138+ state = ev . state ;
139+ }
140+ }
108141
109142 //Controls - TODO: implement
110- thisPlayer . start = function ( doneCallback , errorCallback ) {
111- sendEvent ( { controls : "start " } ) ;
143+ thisPlayer . play = function ( doneCallback , errorCallback ) {
144+ sendEvent ( { controls : "play " } ) ;
112145 }
113146 thisPlayer . pause = function ( doneCallback , errorCallback ) {
114147 sendEvent ( { controls : "pause" } ) ;
115148 }
116- thisPlayer . resume = function ( doneCallback , errorCallback ) {
117- sendEvent ( { controls : "resume" } ) ;
118- }
119149 thisPlayer . fadeOut = function ( doneCallback , errorCallback ) {
120150 sendEvent ( { controls : "fadeOut" } ) ;
121151 }
@@ -128,6 +158,13 @@ function sepiaFW_build_ui_cards_embed(){
128158 thisPlayer . previous = function ( doneCallback , errorCallback ) {
129159 sendEvent ( { controls : "previous" } ) ;
130160 }
161+ thisPlayer . volumeUp = function ( doneCallback , errorCallback ) {
162+ sendEvent ( { controls : "volumeUp" } ) ;
163+ }
164+ thisPlayer . volumeDown = function ( doneCallback , errorCallback ) {
165+ sendEvent ( { controls : "volumeDown" } ) ;
166+ }
167+
131168 //stop, release resources and remove handle
132169 thisPlayer . release = function ( doneCallback , errorCallback ) {
133170
0 commit comments