@@ -18,6 +18,7 @@ goog.require('shaka.util.FakeEventTarget');
1818goog . require ( 'shaka.util.IReleasable' ) ;
1919
2020goog . requireType ( 'shaka.Player' ) ;
21+ goog . requireType ( 'shaka.ui.Controls' ) ;
2122
2223
2324/**
@@ -30,8 +31,9 @@ shaka.ui.VRManager = class extends shaka.util.FakeEventTarget {
3031 * @param {!HTMLMediaElement } video
3132 * @param {!shaka.Player } player
3233 * @param {shaka.extern.UIConfiguration } config
34+ * @param {!shaka.ui.Controls } controls
3335 */
34- constructor ( container , canvas , video , player , config ) {
36+ constructor ( container , canvas , video , player , config , controls ) {
3537 super ( ) ;
3638
3739 /** @private {!HTMLElement} */
@@ -49,6 +51,9 @@ shaka.ui.VRManager = class extends shaka.util.FakeEventTarget {
4951 /** @private {shaka.extern.UIConfiguration} */
5052 this . config_ = config ;
5153
54+ /** @private {!shaka.ui.Controls} */
55+ this . controls_ = controls ;
56+
5257 /** @private {shaka.util.EventManager} */
5358 this . loadEventManager_ = new shaka . util . EventManager ( ) ;
5459
@@ -145,6 +150,10 @@ shaka.ui.VRManager = class extends shaka.util.FakeEventTarget {
145150 this . checkVrStatus_ ( ) ;
146151 } ) ;
147152
153+ this . loadEventManager_ . listen ( this . controls_ , 'caststatuschanged' , ( ) => {
154+ this . checkVrStatus_ ( ) ;
155+ } ) ;
156+
148157 this . checkVrStatus_ ( ) ;
149158 }
150159
@@ -327,7 +336,8 @@ shaka.ui.VRManager = class extends shaka.util.FakeEventTarget {
327336 * @private
328337 */
329338 checkVrStatus_ ( ) {
330- if ( ( this . config_ . displayInVrMode || this . vrAsset_ ) ) {
339+ const isCasting = this . controls_ . getCastProxy ( ) . isCasting ( ) ;
340+ if ( ( this . config_ . displayInVrMode || this . vrAsset_ ) && ! isCasting ) {
331341 if ( ! this . canvas_ ) {
332342 this . canvas_ = shaka . util . Dom . asHTMLCanvasElement (
333343 document . createElement ( 'canvas' ) ) ;
@@ -353,8 +363,7 @@ shaka.ui.VRManager = class extends shaka.util.FakeEventTarget {
353363 // Re-initialization the status does not change.
354364 }
355365 }
356- } else if ( ! this . config_ . displayInVrMode && ! this . vrAsset_ &&
357- this . canvas_ && this . vrWebgl_ ) {
366+ } else if ( this . canvas_ && this . vrWebgl_ ) {
358367 this . canvas_ . style . display = 'none' ;
359368 this . eventManager_ . removeAll ( ) ;
360369 this . vrWebgl_ . release ( ) ;
0 commit comments