shaka-player 4.0.4 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +41 -34
  2. package/CONTRIBUTORS +1 -0
  3. package/demo/common/message_ids.js +1 -0
  4. package/demo/config.js +3 -1
  5. package/demo/locales/en.json +1 -0
  6. package/demo/locales/source.json +4 -0
  7. package/dist/demo.compiled.debug.js +4 -4
  8. package/dist/demo.compiled.debug.map +2 -2
  9. package/dist/demo.compiled.js +4 -4
  10. package/dist/demo.compiled.map +2 -2
  11. package/dist/deps.js +2 -2
  12. package/dist/locales.js +30 -30
  13. package/dist/receiver.compiled.debug.js +2 -2
  14. package/dist/receiver.compiled.debug.map +2 -2
  15. package/dist/receiver.compiled.js +2 -2
  16. package/dist/receiver.compiled.map +2 -2
  17. package/dist/shaka-player.compiled.d.ts +14 -8
  18. package/dist/shaka-player.compiled.debug.d.ts +14 -8
  19. package/dist/shaka-player.compiled.debug.externs.js +10 -2
  20. package/dist/shaka-player.compiled.debug.js +168 -160
  21. package/dist/shaka-player.compiled.debug.map +3 -3
  22. package/dist/shaka-player.compiled.externs.js +10 -2
  23. package/dist/shaka-player.compiled.js +767 -764
  24. package/dist/shaka-player.compiled.map +3 -3
  25. package/dist/shaka-player.ui.d.ts +15 -9
  26. package/dist/shaka-player.ui.debug.d.ts +15 -9
  27. package/dist/shaka-player.ui.debug.externs.js +10 -2
  28. package/dist/shaka-player.ui.debug.js +201 -189
  29. package/dist/shaka-player.ui.debug.map +3 -3
  30. package/dist/shaka-player.ui.externs.js +10 -2
  31. package/dist/shaka-player.ui.js +934 -931
  32. package/dist/shaka-player.ui.map +3 -3
  33. package/docs/design/chromecast.md +3 -1
  34. package/docs/tutorials/drm-config.md +16 -0
  35. package/docs/tutorials/ui.md +26 -0
  36. package/externs/chromecast.js +9 -2
  37. package/externs/shaka/manifest.js +7 -0
  38. package/externs/shaka/player.js +21 -2
  39. package/externs/shaka/text.js +7 -0
  40. package/lib/cast/cast_proxy.js +19 -8
  41. package/lib/cast/cast_receiver.js +3 -3
  42. package/lib/cast/cast_sender.js +12 -2
  43. package/lib/hls/hls_parser.js +12 -1
  44. package/lib/media/drm_engine.js +17 -8
  45. package/lib/media/gap_jumping_controller.js +23 -1
  46. package/lib/media/playhead.js +47 -4
  47. package/lib/media/stall_detector.js +19 -2
  48. package/lib/media/streaming_engine.js +8 -1
  49. package/lib/offline/manifest_converter.js +1 -0
  50. package/lib/player.js +175 -69
  51. package/lib/text/cue.js +6 -0
  52. package/lib/text/ui_text_displayer.js +1 -0
  53. package/lib/text/vtt_text_parser.js +4 -0
  54. package/lib/util/error.js +6 -0
  55. package/lib/util/fake_event.js +39 -0
  56. package/lib/util/player_configuration.js +2 -0
  57. package/lib/util/stats.js +28 -1
  58. package/lib/util/stream_utils.js +7 -0
  59. package/package.json +1 -1
  60. package/test/cast/cast_proxy_unit.js +3 -1
  61. package/test/cast/cast_sender_unit.js +21 -6
  62. package/test/demo/demo_unit.js +2 -1
  63. package/test/media/adaptation_set_unit.js +1 -0
  64. package/test/media/playhead_unit.js +114 -25
  65. package/test/media/stall_detector_unit.js +20 -2
  66. package/test/media/streaming_engine_integration.js +2 -1
  67. package/test/media/streaming_engine_unit.js +1 -0
  68. package/test/player_integration.js +3 -0
  69. package/test/player_unit.js +142 -1
  70. package/test/test/util/manifest_generator.js +2 -0
  71. package/test/test/util/simple_fakes.js +14 -0
  72. package/test/test/util/streaming_engine_util.js +1 -0
  73. package/test/text/vtt_text_parser_unit.js +4 -0
  74. package/test/ui/ui_unit.js +18 -5
  75. package/test/util/stream_utils_unit.js +108 -0
  76. package/ui/controls.js +12 -8
  77. package/ui/externs/ui.js +10 -1
  78. package/ui/statistics_button.js +10 -0
  79. package/ui/ui.js +12 -1
@@ -671,10 +671,10 @@ declare namespace shaka.ads {
671
671
  declare namespace shaka.cast {
672
672
  class CastProxy extends shaka.util.FakeEventTarget implements shaka.util.IDestroyable {
673
673
  private noStructuralTyping_shaka_cast_CastProxy : any;
674
- constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string ) ;
674
+ constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string , androidReceiverCompatible : boolean ) ;
675
675
  canCast ( ) : boolean ;
676
676
  cast ( ) : Promise < any > ;
677
- changeReceiverId (newAppId : string ) : any ;
677
+ changeReceiverId (newAppId : string , newCastAndroidReceiver ? : boolean ) : any ;
678
678
  /**
679
679
  * Destroys the proxy and the underlying local Player.
680
680
  * @param forceDisconnect If true, force the receiver app to shut down by disconnecting. Does nothing if not connected.
@@ -1663,6 +1663,7 @@ declare namespace shaka.text {
1663
1663
  startTime : any ;
1664
1664
  textAlign : any ;
1665
1665
  textDecoration : any ;
1666
+ textShadow : any ;
1666
1667
  textStrokeColor : any ;
1667
1668
  textStrokeWidth : any ;
1668
1669
  wrapLine : any ;
@@ -2278,6 +2279,7 @@ declare namespace shaka.util.Error {
2278
2279
  REQUEST_FILTER_ERROR = 1006.0 ,
2279
2280
  RESPONSE_FILTER_ERROR = 1007.0 ,
2280
2281
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2282
+ SEGMENT_MISSING = 1011.0 ,
2281
2283
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2282
2284
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2283
2285
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -2888,7 +2890,7 @@ declare namespace chrome.cast {
2888
2890
  declare namespace chrome.cast {
2889
2891
  class SessionRequest {
2890
2892
  private noStructuralTyping_chrome_cast_SessionRequest : any;
2891
- constructor (appId : string ) ;
2893
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
2892
2894
  }
2893
2895
  }
2894
2896
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3444,7 +3446,7 @@ declare namespace shaka.extern {
3444
3446
  }
3445
3447
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3446
3448
  declare namespace shaka.extern {
3447
- type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3449
+ type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , disabledUntilTime : number , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3448
3450
  }
3449
3451
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3450
3452
  declare namespace shaka.extern {
@@ -3804,7 +3806,7 @@ declare namespace shaka.extern {
3804
3806
  }
3805
3807
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3806
3808
  declare namespace shaka.extern {
3807
- type Chapter = { endTime : number , startTime : number , title : string } ;
3809
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
3808
3810
  }
3809
3811
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3810
3812
  declare namespace shaka.extern {
@@ -3816,7 +3818,7 @@ declare namespace shaka.extern {
3816
3818
  }
3817
3819
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3818
3820
  declare namespace shaka.extern {
3819
- type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3821
+ type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3820
3822
  }
3821
3823
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3822
3824
  declare namespace shaka.extern {
@@ -3864,11 +3866,11 @@ declare namespace shaka.extern {
3864
3866
  }
3865
3867
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3866
3868
  declare namespace shaka.extern {
3867
- type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
3869
+ type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , gapsJumped : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stallsDetected : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
3868
3870
  }
3869
3871
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3870
3872
  declare namespace shaka.extern {
3871
- type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
3873
+ type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , maxDisabledTime : number , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
3872
3874
  }
3873
3875
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3874
3876
  declare namespace shaka.extern {
@@ -4047,6 +4049,10 @@ declare namespace shaka.extern {
4047
4049
  * and line through. Empty array means no decoration.
4048
4050
  */
4049
4051
  textDecoration : shaka.text.Cue.textDecoration [] ;
4052
+ /**
4053
+ * Text shadow color as a CSS text-shadow value.
4054
+ */
4055
+ textShadow : string ;
4050
4056
  /**
4051
4057
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4052
4058
  */
@@ -671,10 +671,10 @@ declare namespace shaka.ads {
671
671
  declare namespace shaka.cast {
672
672
  class CastProxy extends shaka.util.FakeEventTarget implements shaka.util.IDestroyable {
673
673
  private noStructuralTyping_shaka_cast_CastProxy : any;
674
- constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string ) ;
674
+ constructor (video : HTMLMediaElement , player : shaka.Player , receiverAppId : string , androidReceiverCompatible : boolean ) ;
675
675
  canCast ( ) : boolean ;
676
676
  cast ( ) : Promise < any > ;
677
- changeReceiverId (newAppId : string ) : any ;
677
+ changeReceiverId (newAppId : string , newCastAndroidReceiver ? : boolean ) : any ;
678
678
  /**
679
679
  * Destroys the proxy and the underlying local Player.
680
680
  * @param forceDisconnect If true, force the receiver app to shut down by disconnecting. Does nothing if not connected.
@@ -1663,6 +1663,7 @@ declare namespace shaka.text {
1663
1663
  startTime : any ;
1664
1664
  textAlign : any ;
1665
1665
  textDecoration : any ;
1666
+ textShadow : any ;
1666
1667
  textStrokeColor : any ;
1667
1668
  textStrokeWidth : any ;
1668
1669
  wrapLine : any ;
@@ -2278,6 +2279,7 @@ declare namespace shaka.util.Error {
2278
2279
  REQUEST_FILTER_ERROR = 1006.0 ,
2279
2280
  RESPONSE_FILTER_ERROR = 1007.0 ,
2280
2281
  RESTRICTIONS_CANNOT_BE_MET = 4012.0 ,
2282
+ SEGMENT_MISSING = 1011.0 ,
2281
2283
  SERVER_CERTIFICATE_REQUEST_FAILED = 6017.0 ,
2282
2284
  SERVER_CERTIFICATE_REQUIRED = 6015.0 ,
2283
2285
  SS_AD_MANAGER_NOT_INITIALIZED = 10003.0 ,
@@ -2888,7 +2890,7 @@ declare namespace chrome.cast {
2888
2890
  declare namespace chrome.cast {
2889
2891
  class SessionRequest {
2890
2892
  private noStructuralTyping_chrome_cast_SessionRequest : any;
2891
- constructor (appId : string ) ;
2893
+ constructor (appId : string , capabilities : ( object | null ) [] | null , timeout : number | null , androidReceiverCompatible : boolean , credentialsData : object | null ) ;
2892
2894
  }
2893
2895
  }
2894
2896
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/chromecast.js
@@ -3444,7 +3446,7 @@ declare namespace shaka.extern {
3444
3446
  }
3445
3447
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest.js
3446
3448
  declare namespace shaka.extern {
3447
- type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3449
+ type Variant = { allowedByApplication : boolean , allowedByKeySystem : boolean , audio : shaka.extern.Stream | null , bandwidth : number , decodingInfos : ( any | null ) [] , disabledUntilTime : number , id : number , language : string , primary : boolean , video : shaka.extern.Stream | null } ;
3448
3450
  }
3449
3451
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3450
3452
  declare namespace shaka.extern {
@@ -3804,7 +3806,7 @@ declare namespace shaka.extern {
3804
3806
  }
3805
3807
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3806
3808
  declare namespace shaka.extern {
3807
- type Chapter = { endTime : number , startTime : number , title : string } ;
3809
+ type Chapter = { endTime : number , id : string , startTime : number , title : string } ;
3808
3810
  }
3809
3811
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3810
3812
  declare namespace shaka.extern {
@@ -3816,7 +3818,7 @@ declare namespace shaka.extern {
3816
3818
  }
3817
3819
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3818
3820
  declare namespace shaka.extern {
3819
- type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3821
+ type DrmConfiguration = { advanced : { [ key: string ]: shaka.extern.AdvancedDrmConfiguration } | null , clearKeys : { [ key: string ]: string } , delayLicenseRequestUntilPlayed : boolean , initDataTransform ? : (a : Uint8Array , b : string , c : shaka.extern.DrmInfo | null ) => Uint8Array , keySystemsMapping : { [ key: string ]: string } , logLicenseExchange : boolean , preferredKeySystems : string [] , retryParameters : shaka.extern.RetryParameters , servers : { [ key: string ]: string } , updateExpirationTime : number } ;
3820
3822
  }
3821
3823
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3822
3824
  declare namespace shaka.extern {
@@ -3864,11 +3866,11 @@ declare namespace shaka.extern {
3864
3866
  }
3865
3867
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3866
3868
  declare namespace shaka.extern {
3867
- type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
3869
+ type Stats = { bufferingTime : number , completionPercent : number , corruptedFrames : number , decodedFrames : number , drmTimeSeconds : number , droppedFrames : number , estimatedBandwidth : number , gapsJumped : number , height : number , licenseTime : number , liveLatency : number , loadLatency : number , manifestTimeSeconds : number , maxSegmentDuration : number , pauseTime : number , playTime : number , stallsDetected : number , stateHistory : shaka.extern.StateChange [] , streamBandwidth : number , switchHistory : shaka.extern.TrackChoice [] , width : number } ;
3868
3870
  }
3869
3871
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3870
3872
  declare namespace shaka.extern {
3871
- type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
3873
+ type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , maxDisabledTime : number , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
3872
3874
  }
3873
3875
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3874
3876
  declare namespace shaka.extern {
@@ -4047,6 +4049,10 @@ declare namespace shaka.extern {
4047
4049
  * and line through. Empty array means no decoration.
4048
4050
  */
4049
4051
  textDecoration : shaka.text.Cue.textDecoration [] ;
4052
+ /**
4053
+ * Text shadow color as a CSS text-shadow value.
4054
+ */
4055
+ textShadow : string ;
4050
4056
  /**
4051
4057
  * Text stroke color as a CSS color, e.g. "#FFFFFF" or "white".
4052
4058
  */
@@ -126,6 +126,10 @@ shaka.text.Cue.prototype.backgroundImage;
126
126
  * @override
127
127
  */
128
128
  shaka.text.Cue.prototype.border;
129
+ /**
130
+ * @override
131
+ */
132
+ shaka.text.Cue.prototype.textShadow;
129
133
  /**
130
134
  * @override
131
135
  */
@@ -533,6 +537,7 @@ shaka.util.Error.Code = {
533
537
  'MALFORMED_TEST_URI': 1008,
534
538
  'UNEXPECTED_TEST_REQUEST': 1009,
535
539
  'ATTEMPTS_EXHAUSTED': 1010,
540
+ 'SEGMENT_MISSING': 1011,
536
541
  'INVALID_TEXT_HEADER': 2000,
537
542
  'INVALID_TEXT_CUE': 2001,
538
543
  'UNABLE_TO_DETECT_ENCODING': 2003,
@@ -3206,8 +3211,10 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3206
3211
  * @param {string} receiverAppId The ID of the cast receiver application.
3207
3212
  * If blank, casting will not be available, but the proxy will still
3208
3213
  * function otherwise.
3214
+ * @param {boolean} androidReceiverCompatible Indicates if the app is
3215
+ * compatible with an Android Receiver.
3209
3216
  */
3210
- constructor(video, player, receiverAppId) {}
3217
+ constructor(video, player, receiverAppId, androidReceiverCompatible) {}
3211
3218
  /**
3212
3219
  * Destroys the proxy and the underlying local Player.
3213
3220
  * @param {boolean=} forceDisconnect If true, force the receiver app to shut
@@ -3262,8 +3269,9 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
3262
3269
  forceDisconnect() {}
3263
3270
  /**
3264
3271
  * @param {string} newAppId
3272
+ * @param {boolean=} newCastAndroidReceiver
3265
3273
  */
3266
- changeReceiverId(newAppId) {}
3274
+ changeReceiverId(newAppId, newCastAndroidReceiver) {}
3267
3275
  };
3268
3276
  /**
3269
3277
  * A receiver to communicate between the Chromecast-hosted player and the