OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 'use strict'; | 5 'use strict'; |
6 | 6 |
7 /** | 7 /** |
8 * @param {Element} playerContainer Main container. | 8 * @param {Element} playerContainer Main container. |
9 * @param {Element} videoContainer Container for the video element. | 9 * @param {Element} videoContainer Container for the video element. |
10 * @param {Element} controlsContainer Container for video controls. | 10 * @param {Element} controlsContainer Container for video controls. |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 * Handles playback (decoder) errors. | 105 * Handles playback (decoder) errors. |
106 * @param {MediaError} error Error object. | 106 * @param {MediaError} error Error object. |
107 * @private | 107 * @private |
108 */ | 108 */ |
109 FullWindowVideoControls.prototype.onPlaybackError_ = function(error) { | 109 FullWindowVideoControls.prototype.onPlaybackError_ = function(error) { |
110 if (error.target && error.target.error && | 110 if (error.target && error.target.error && |
111 error.target.error.code === MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED) { | 111 error.target.error.code === MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED) { |
112 if (this.casting) | 112 if (this.casting) |
113 this.showErrorMessage('VIDEO_PLAYER_VIDEO_FILE_UNSUPPORTED_FOR_CAST'); | 113 this.showErrorMessage('VIDEO_PLAYER_VIDEO_FILE_UNSUPPORTED_FOR_CAST'); |
114 else | 114 else |
115 this.showErrorMessage('GALLERY_VIDEO_ERROR'); | 115 this.showErrorMessage('VIDEO_PLAYER_VIDEO_FILE_UNSUPPORTED'); |
116 this.decodeErrorOccured = false; | 116 this.decodeErrorOccured = false; |
117 } else { | 117 } else { |
118 this.showErrorMessage('GALLERY_VIDEO_DECODING_ERROR'); | 118 this.showErrorMessage('VIDEO_PLAYER_PLAYBACK_ERROR'); |
119 this.decodeErrorOccured = true; | 119 this.decodeErrorOccured = true; |
120 } | 120 } |
121 | 121 |
122 // Disable inactivity watcher, and disable the ui, by hiding tools manually. | 122 // Disable inactivity watcher, and disable the ui, by hiding tools manually. |
123 this.inactivityWatcher.disabled = true; | 123 this.inactivityWatcher.disabled = true; |
124 document.querySelector('#video-player').setAttribute('disabled', 'true'); | 124 document.querySelector('#video-player').setAttribute('disabled', 'true'); |
125 | 125 |
126 // Detach the video element, since it may be unreliable and reset stored | 126 // Detach the video element, since it may be unreliable and reset stored |
127 // current playback time. | 127 // current playback time. |
128 this.cleanup(); | 128 this.cleanup(); |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 }.wrap()); | 399 }.wrap()); |
400 | 400 |
401 this.videoElement_.load(); | 401 this.videoElement_.load(); |
402 callback(); | 402 callback(); |
403 }.bind(this)). | 403 }.bind(this)). |
404 // In case of error. | 404 // In case of error. |
405 catch(function(error) { | 405 catch(function(error) { |
406 videoPlayerElement.removeAttribute('loading'); | 406 videoPlayerElement.removeAttribute('loading'); |
407 console.error('Failed to initialize the video element.', | 407 console.error('Failed to initialize the video element.', |
408 error.stack || error); | 408 error.stack || error); |
409 this.controls_.showErrorMessage('GALLERY_VIDEO_ERROR'); | 409 this.controls_.showErrorMessage( |
| 410 'VIDEO_PLAYER_VIDEO_FILE_UNSUPPORTED'); |
410 callback(); | 411 callback(); |
411 }.bind(this)); | 412 }.bind(this)); |
412 }.wrap(this)); | 413 }.wrap(this)); |
413 }; | 414 }; |
414 | 415 |
415 /** | 416 /** |
416 * Plays the first video. | 417 * Plays the first video. |
417 */ | 418 */ |
418 VideoPlayer.prototype.playFirstVideo = function() { | 419 VideoPlayer.prototype.playFirstVideo = function() { |
419 this.currentPos_ = 0; | 420 this.currentPos_ = 0; |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 /** | 612 /** |
612 * Called when the current cast is disappear from the cast list. | 613 * Called when the current cast is disappear from the cast list. |
613 * @private | 614 * @private |
614 */ | 615 */ |
615 VideoPlayer.prototype.onCurrentCastDisappear_ = function() { | 616 VideoPlayer.prototype.onCurrentCastDisappear_ = function() { |
616 this.currentCast_ = null; | 617 this.currentCast_ = null; |
617 if (this.currentSession_) { | 618 if (this.currentSession_) { |
618 this.currentSession_.removeUpdateListener(this.onCastSessionUpdateBound_); | 619 this.currentSession_.removeUpdateListener(this.onCastSessionUpdateBound_); |
619 this.currentSession_ = null; | 620 this.currentSession_ = null; |
620 } | 621 } |
621 this.controls.showErrorMessage('GALLERY_VIDEO_DECODING_ERROR'); | 622 this.controls.showErrorMessage('VIDEO_PLAYER_PLAYBACK_ERROR'); |
622 this.unloadVideo(); | 623 this.unloadVideo(); |
623 }; | 624 }; |
624 | 625 |
625 /** | 626 /** |
626 * This method should be called when the session is updated. | 627 * This method should be called when the session is updated. |
627 * @param {boolean} alive Whether the session is alive or not. | 628 * @param {boolean} alive Whether the session is alive or not. |
628 * @private | 629 * @private |
629 */ | 630 */ |
630 VideoPlayer.prototype.onCastSessionUpdate_ = function(alive) { | 631 VideoPlayer.prototype.onCastSessionUpdate_ = function(alive) { |
631 if (!alive) | 632 if (!alive) |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
669 var initPromise = Promise.all( | 670 var initPromise = Promise.all( |
670 [new Promise(initVideos.wrap(null)), | 671 [new Promise(initVideos.wrap(null)), |
671 new Promise(initStrings.wrap(null)), | 672 new Promise(initStrings.wrap(null)), |
672 new Promise(util.addPageLoadHandler.wrap(null))]); | 673 new Promise(util.addPageLoadHandler.wrap(null))]); |
673 | 674 |
674 initPromise.then(function(results) { | 675 initPromise.then(function(results) { |
675 var videos = results[0]; | 676 var videos = results[0]; |
676 player.prepare(videos); | 677 player.prepare(videos); |
677 return new Promise(player.playFirstVideo.wrap(player)); | 678 return new Promise(player.playFirstVideo.wrap(player)); |
678 }.wrap(null)); | 679 }.wrap(null)); |
OLD | NEW |