Skip to content

Commit 9832a60

Browse files
committed
fix(UI): Disable VR mode while casting (#9296)
1 parent 5db6667 commit 9832a60

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

ui/controls.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget {
502502
goog.asserts.assert(this.localVideo_, 'Should have a localVideo_!');
503503
goog.asserts.assert(this.player_, 'Should have a player_!');
504504
this.vr_ = new shaka.ui.VRManager(this.controlsContainer_, this.vrCanvas_,
505-
this.localVideo_, this.player_, this.config_);
505+
this.localVideo_, this.player_, this.config_, this);
506506
}
507507

508508
// Create the new layout

ui/vr_manager.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ goog.require('shaka.util.FakeEventTarget');
1818
goog.require('shaka.util.IReleasable');
1919

2020
goog.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

Comments
 (0)