react-native-theoplayer 7.2.0 → 7.4.0

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 (75) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/android/build.gradle +1 -1
  3. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  4. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  5. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +6 -5
  6. package/android/src/main/java/com/theoplayer/ReactTHEOplayerContext.kt +6 -4
  7. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +7 -8
  8. package/ios/THEOplayerRCTPlayerAPI.swift +28 -3
  9. package/ios/THEOplayerRCTView.swift +7 -0
  10. package/ios/backgroundAudio/THEOplayerRCTRemoteCommandsManager.swift +12 -4
  11. package/ios/backgroundAudio/THEOplayerRCTView+MediaControlConfig.swift +23 -0
  12. package/ios/cache/THEOplayerRCTCachingParametersBuilder.swift +1 -1
  13. package/lib/commonjs/api/abr/ABRConfiguration.js.map +1 -1
  14. package/lib/commonjs/api/barrel.js +22 -11
  15. package/lib/commonjs/api/barrel.js.map +1 -1
  16. package/lib/commonjs/api/resolution/Resolution.js +2 -0
  17. package/lib/commonjs/api/resolution/Resolution.js.map +1 -0
  18. package/lib/commonjs/api/resolution/barrel.js +17 -0
  19. package/lib/commonjs/api/resolution/barrel.js.map +1 -0
  20. package/lib/commonjs/internal/THEOplayerView.js +27 -2
  21. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  22. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +1 -1
  23. package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
  24. package/lib/commonjs/internal/adapter/abr/AbrAdapter.js +17 -1
  25. package/lib/commonjs/internal/adapter/abr/AbrAdapter.js.map +1 -1
  26. package/lib/commonjs/internal/poster/Poster.js +31 -0
  27. package/lib/commonjs/internal/poster/Poster.js.map +1 -0
  28. package/lib/module/api/abr/ABRConfiguration.js.map +1 -1
  29. package/lib/module/api/barrel.js +1 -0
  30. package/lib/module/api/barrel.js.map +1 -1
  31. package/lib/module/api/resolution/Resolution.js +2 -0
  32. package/lib/module/api/resolution/Resolution.js.map +1 -0
  33. package/lib/module/api/resolution/barrel.js +2 -0
  34. package/lib/module/api/resolution/barrel.js.map +1 -0
  35. package/lib/module/internal/THEOplayerView.js +27 -2
  36. package/lib/module/internal/THEOplayerView.js.map +1 -1
  37. package/lib/module/internal/adapter/THEOplayerAdapter.js +1 -1
  38. package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
  39. package/lib/module/internal/adapter/abr/AbrAdapter.js +17 -1
  40. package/lib/module/internal/adapter/abr/AbrAdapter.js.map +1 -1
  41. package/lib/module/internal/poster/Poster.js +23 -0
  42. package/lib/module/internal/poster/Poster.js.map +1 -0
  43. package/lib/typescript/api/abr/ABRConfiguration.d.ts +23 -0
  44. package/lib/typescript/api/abr/ABRConfiguration.d.ts.map +1 -1
  45. package/lib/typescript/api/barrel.d.ts +1 -0
  46. package/lib/typescript/api/barrel.d.ts.map +1 -1
  47. package/lib/typescript/api/media/MediaControlConfiguration.d.ts +2 -8
  48. package/lib/typescript/api/media/MediaControlConfiguration.d.ts.map +1 -1
  49. package/lib/typescript/api/player/THEOplayer.d.ts +1 -4
  50. package/lib/typescript/api/player/THEOplayer.d.ts.map +1 -1
  51. package/lib/typescript/api/resolution/Resolution.d.ts +5 -0
  52. package/lib/typescript/api/resolution/Resolution.d.ts.map +1 -0
  53. package/lib/typescript/api/resolution/barrel.d.ts +2 -0
  54. package/lib/typescript/api/resolution/barrel.d.ts.map +1 -0
  55. package/lib/typescript/api/source/SourceDescription.d.ts +0 -1
  56. package/lib/typescript/api/source/SourceDescription.d.ts.map +1 -1
  57. package/lib/typescript/internal/THEOplayerView.d.ts +5 -0
  58. package/lib/typescript/internal/THEOplayerView.d.ts.map +1 -1
  59. package/lib/typescript/internal/adapter/abr/AbrAdapter.d.ts +7 -1
  60. package/lib/typescript/internal/adapter/abr/AbrAdapter.d.ts.map +1 -1
  61. package/lib/typescript/internal/poster/Poster.d.ts +5 -0
  62. package/lib/typescript/internal/poster/Poster.d.ts.map +1 -0
  63. package/package.json +4 -4
  64. package/react-native-theoplayer.podspec +5 -5
  65. package/src/api/abr/ABRConfiguration.ts +26 -0
  66. package/src/api/barrel.ts +1 -0
  67. package/src/api/media/MediaControlConfiguration.ts +2 -8
  68. package/src/api/player/THEOplayer.ts +1 -4
  69. package/src/api/resolution/Resolution.ts +5 -0
  70. package/src/api/resolution/barrel.ts +1 -0
  71. package/src/api/source/SourceDescription.ts +0 -1
  72. package/src/internal/THEOplayerView.tsx +22 -1
  73. package/src/internal/adapter/THEOplayerAdapter.ts +1 -1
  74. package/src/internal/adapter/abr/AbrAdapter.ts +23 -1
  75. package/src/internal/poster/Poster.tsx +14 -0
@@ -12,7 +12,7 @@ import type { PresentationMode } from '../presentation/PresentationMode';
12
12
  import type { PiPConfiguration } from '../pip/PiPConfiguration';
13
13
  import type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';
14
14
  import type { PlayerVersion } from './PlayerVersion';
15
- import type { EventBroadcastAPI } from "../broadcast/EventBroadcastAPI";
15
+ import type { EventBroadcastAPI } from '../broadcast/EventBroadcastAPI';
16
16
  export type PreloadType = 'none' | 'metadata' | 'auto' | '';
17
17
  /**
18
18
  * Specifies an aspect ratio for the player.
@@ -36,9 +36,6 @@ export type NativeHandleType = unknown;
36
36
  export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
37
37
  /**
38
38
  * The player's adaptive bitrate (ABR) configuration.
39
- *
40
- * @remarks
41
- * <br/> - This property is supported on Android & Web platforms only.
42
39
  */
43
40
  readonly abr: ABRConfiguration | undefined;
44
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"THEOplayer.d.ts","sourceRoot":"","sources":["../../../../src/api/player/THEOplayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"THEOplayer.d.ts","sourceRoot":"","sources":["../../../../src/api/player/THEOplayer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface Resolution {
2
+ readonly width: number;
3
+ readonly height: number;
4
+ }
5
+ //# sourceMappingURL=Resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Resolution.d.ts","sourceRoot":"","sources":["../../../../src/api/resolution/Resolution.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export * from './Resolution';
2
+ //# sourceMappingURL=barrel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barrel.d.ts","sourceRoot":"","sources":["../../../../src/api/resolution/barrel.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -54,7 +54,6 @@ export interface SourceConfiguration {
54
54
  *
55
55
  * @remarks
56
56
  * <br/> - An empty string (`''`) clears the current poster.
57
- * <br/> - This poster has priority over {@link theoplayer!ChromelessPlayer.poster}.
58
57
  */
59
58
  poster?: string;
60
59
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SourceDescription.d.ts","sourceRoot":"","sources":["../../../../src/api/source/SourceDescription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceDescription.d.ts","sourceRoot":"","sources":["../../../../src/api/source/SourceDescription.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACxG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAExC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,EAAE,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEtE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,GAAG,CAAC,EAAE,aAAa,EAAE,CAAC;IAEtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAEpC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IAEH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IAEzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,yBAAyB,CAAC;IAEjC;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,wBAAwB,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,kCAAkC,CAAC;CAC3C"}
@@ -5,6 +5,8 @@ interface THEOplayerRCTViewState {
5
5
  error?: PlayerError;
6
6
  presentationMode?: PresentationMode | undefined;
7
7
  screenSize: ScaledSize;
8
+ posterActive: boolean;
9
+ poster: string | undefined;
8
10
  }
9
11
  export declare class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOplayerViewProps>, THEOplayerRCTViewState> {
10
12
  private readonly _root;
@@ -47,6 +49,9 @@ export declare class THEOplayerView extends PureComponent<React.PropsWithChildre
47
49
  private _onCastEvent;
48
50
  private _onPresentationModeChange;
49
51
  private _onResize;
52
+ private _updatePoster;
53
+ private _showPoster;
54
+ private _hidePoster;
50
55
  render(): JSX.Element;
51
56
  }
52
57
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"THEOplayerView.d.ts","sourceRoot":"","sources":["../../../src/internal/THEOplayerView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAc7C,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAuC,WAAW,EAAE,gBAAgB,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA0FhJ,UAAU,sBAAsB;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,UAAU,EAAE,UAAU,CAAC;CACxB;AAID,qBAAa,cAAe,SAAQ,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;IACrH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAkC;IAE7D,OAAO,CAAC,MAAM,CAAC,YAAY,CAIzB;gBAEU,KAAK,EAAE,mBAAmB;IAOtC,iBAAiB;IAIjB,oBAAoB;IAkBpB,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,oBAAoB,CAE1B;IAEF,OAAO,CAAC,oBAAoB,CAK1B;IAEF,OAAO,CAAC,eAAe,CAGrB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,iBAAiB,CAavB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,QAAQ,CAId;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,OAAO,CAEb;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,iBAAiB,CAOvB;IAEF,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,sBAAsB,CAK5B;IAEF,OAAO,CAAC,kBAAkB,CAUxB;IAEF,OAAO,CAAC,UAAU,CAGhB;IAEF,OAAO,CAAC,YAAY,CAYlB;IAEF,OAAO,CAAC,yBAAyB,CAS/B;IAEF,OAAO,CAAC,SAAS,CAEf;IAEK,MAAM,IAAI,GAAG,CAAC,OAAO;CA4C7B"}
1
+ {"version":3,"file":"THEOplayerView.d.ts","sourceRoot":"","sources":["../../../src/internal/THEOplayerView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAc7C,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAuC,WAAW,EAAE,gBAAgB,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA2FhJ,UAAU,sBAAsB;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAChD,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAID,qBAAa,cAAe,SAAQ,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,sBAAsB,CAAC;IACrH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiD;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAkC;IAE7D,OAAO,CAAC,MAAM,CAAC,YAAY,CAMzB;gBAEU,KAAK,EAAE,mBAAmB;IAOtC,iBAAiB;IAIjB,oBAAoB;IAkBpB,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,oBAAoB,CAE1B;IAEF,OAAO,CAAC,oBAAoB,CAK1B;IAEF,OAAO,CAAC,eAAe,CAKrB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,iBAAiB,CAavB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,QAAQ,CAId;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,OAAO,CAGb;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,kBAAkB,CAGxB;IAEF,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,iBAAiB,CAOvB;IAEF,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,sBAAsB,CAK5B;IAEF,OAAO,CAAC,kBAAkB,CAUxB;IAEF,OAAO,CAAC,UAAU,CAGhB;IAEF,OAAO,CAAC,YAAY,CAYlB;IAEF,OAAO,CAAC,yBAAyB,CAS/B;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEK,MAAM,IAAI,GAAG,CAAC,OAAO;CA6C7B"}
@@ -1,13 +1,19 @@
1
- import type { ABRConfiguration, ABRStrategy, THEOplayerView } from 'react-native-theoplayer';
1
+ import type { ABRConfiguration, ABRStrategy, Resolution, THEOplayerView } from 'react-native-theoplayer';
2
2
  export declare class AbrAdapter implements ABRConfiguration {
3
3
  private readonly _view;
4
4
  private _strategy;
5
5
  private _targetBuffer;
6
+ private _preferredPeakBitRate;
7
+ private _preferredMaximumResolution;
6
8
  constructor(view: THEOplayerView);
7
9
  get strategy(): ABRStrategy | undefined;
8
10
  set strategy(strategy: ABRStrategy | undefined);
9
11
  get targetBuffer(): number | undefined;
10
12
  set targetBuffer(targetBuffer: number | undefined);
13
+ get preferredPeakBitRate(): number | undefined;
14
+ set preferredPeakBitRate(preferredPeakBitRate: number | undefined);
15
+ get preferredMaximumResolution(): Resolution | undefined;
16
+ set preferredMaximumResolution(preferredMaximumResolution: Resolution | undefined);
11
17
  private updateConfig;
12
18
  }
13
19
  //# sourceMappingURL=AbrAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbrAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/abr/AbrAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK7F,qBAAa,UAAW,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAqB;gBAE9B,IAAI,EAAE,cAAc;IAIhC,IAAI,QAAQ,IAAI,WAAW,GAAG,SAAS,CAEtC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,EAG7C;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAGhD;IAED,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"AbrAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/internal/adapter/abr/AbrAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzG,qBAAa,UAAW,YAAW,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,qBAAqB,CAAqB;IAClD,OAAO,CAAC,2BAA2B,CAAyB;gBAEhD,IAAI,EAAE,cAAc;IAIhC,IAAI,QAAQ,IAAI,WAAW,GAAG,SAAS,CAEtC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,EAG7C;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAGhD;IAED,IAAI,oBAAoB,IAAI,MAAM,GAAG,SAAS,CAE7C;IAED,IAAI,oBAAoB,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,EAGhE;IAED,IAAI,0BAA0B,IAAI,UAAU,GAAG,SAAS,CAEvD;IAED,IAAI,0BAA0B,CAAC,0BAA0B,EAAE,UAAU,GAAG,SAAS,EAGhF;IAED,OAAO,CAAC,YAAY;CAQrB"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare const Poster: (props: {
3
+ uri: string | undefined;
4
+ }) => React.JSX.Element;
5
+ //# sourceMappingURL=Poster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Poster.d.ts","sourceRoot":"","sources":["../../../../src/internal/poster/Poster.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,MAAM,UAAW;IAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,sBAUxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-theoplayer",
3
- "version": "7.2.0",
3
+ "version": "7.4.0",
4
4
  "description": "A THEOplayer video component for react-native.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -47,7 +47,7 @@
47
47
  "registry": "https://registry.npmjs.org/"
48
48
  },
49
49
  "devDependencies": {
50
- "@react-native/eslint-config": "0.73.2",
50
+ "@react-native/eslint-config": "^0.74.83",
51
51
  "@types/react": "^18.2.24",
52
52
  "@types/react-native": "^0.73.0",
53
53
  "eslint": "^8.56.0",
@@ -55,9 +55,9 @@
55
55
  "pod-install": "^0.1.39",
56
56
  "prettier": "^3.2.5",
57
57
  "react": "^18.2.0",
58
- "react-native": "^0.73.4",
58
+ "react-native": "^0.74.1",
59
59
  "react-native-builder-bob": "^0.23.2",
60
- "theoplayer": "^7.0.0",
60
+ "theoplayer": "^7.4.1",
61
61
  "typedoc": "^0.25.12",
62
62
  "typedoc-plugin-external-resolver": "^1.0.3",
63
63
  "typedoc-plugin-mdn-links": "^3.1.18",
@@ -32,23 +32,23 @@ Pod::Spec.new do |s|
32
32
  s.dependency "React-Core"
33
33
 
34
34
  # THEOplayer core Dependency
35
- s.dependency "THEOplayerSDK-core", "~> 7.2"
35
+ s.dependency "THEOplayerSDK-core", "~> 7.4"
36
36
 
37
37
  if theofeatures.include?("GOOGLE_IMA")
38
38
  puts "Adding THEOplayer-Integration-GoogleIMA"
39
- s.dependency "THEOplayer-Integration-GoogleIMA/Base", "~> 7.2"
40
- s.dependency "THEOplayer-Integration-GoogleIMA/Dependencies", "~> 7.2"
39
+ s.dependency "THEOplayer-Integration-GoogleIMA/Base", "~> 7.4"
40
+ s.dependency "THEOplayer-Integration-GoogleIMA/Dependencies", "~> 7.4"
41
41
  end
42
42
 
43
43
  if theofeatures.include?("CHROMECAST")
44
44
  puts "Adding THEOplayer-Integration-GoogleCast"
45
- s.ios.dependency "THEOplayer-Integration-GoogleCast/Base", "~> 7.2"
45
+ s.ios.dependency "THEOplayer-Integration-GoogleCast/Base", "~> 7.4"
46
46
  s.ios.dependency "google-cast-sdk-dynamic-xcframework", "~> 4.8"
47
47
  end
48
48
 
49
49
  if theofeatures.include?("SIDELOADED_TEXTTRACKS")
50
50
  puts "Adding THEOplayer-Connector-SideloadedSubtitle"
51
- s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 7.1"
51
+ s.dependency "THEOplayer-Connector-SideloadedSubtitle", "~> 7.4"
52
52
  end
53
53
 
54
54
  end
@@ -1,3 +1,5 @@
1
+ import { Resolution } from '../resolution/Resolution';
2
+
1
3
  /**
2
4
  * The adaptive bitrate strategy of the first segment, represented by a value from the following list:
3
5
  * <br/> - `'performance'`: The player will optimize ABR behavior to focus on the performance of the player. This strategy initiates playback with the lowest quality suitable for the device which means faster start-up time.
@@ -62,6 +64,8 @@ export interface ABRConfiguration {
62
64
  * The adaptive bitrate strategy.
63
65
  *
64
66
  * @defaultValue `'bandwidth'`
67
+ * @remarks
68
+ * <br/> - This property is currently supported on Web and Android platforms only.
65
69
  */
66
70
  strategy?: ABRStrategy;
67
71
 
@@ -104,4 +108,26 @@ export interface ABRConfiguration {
104
108
  * <br/> - This property is currently supported on Web platforms only.
105
109
  */
106
110
  readonly maxBufferLength?: number;
111
+
112
+ /**
113
+ * The desired limit of network bandwidth consumption for this item.
114
+ *
115
+ * Set preferredPeakBitRate to non-zero to indicate that the player should attempt to limit item playback to that bit rate, expressed in bits per second.
116
+ * If network bandwidth consumption cannot be lowered to meet the preferredPeakBitRate, it will be reduced as much as possible while continuing to play the item.
117
+ *
118
+ * @remarks
119
+ * <br/> - This property is supported on iOS platforms only.
120
+ */
121
+ preferredPeakBitRate?: number;
122
+
123
+ /**
124
+ * A preferred upper limit on the resolution of the video to be downloaded (or otherwise transferred) and rendered by the player.
125
+ *
126
+ * The default value is (0,0), which indicates that the client enforces no limit on video resolution. Other values indicate a preferred maximum video resolution.
127
+ * It only applies to HTTP Live Streaming asset.
128
+ *
129
+ * @remarks
130
+ * <br/> - This property is supported on iOS platforms only.
131
+ */
132
+ preferredMaximumResolution?: Resolution;
107
133
  }
package/src/api/barrel.ts CHANGED
@@ -12,6 +12,7 @@ export * from './media/barrel';
12
12
  export * from './drm/barrel';
13
13
  export * from './source/barrel';
14
14
  export * from './timeranges/barrel';
15
+ export * from './resolution/barrel';
15
16
  export * from './track/barrel';
16
17
  export * from './ui/barrel';
17
18
  export * from './utils/barrel';
@@ -27,20 +27,14 @@ export interface MediaControlConfiguration {
27
27
  /**
28
28
  * The amount of seconds the player will skip forward.
29
29
  *
30
- * @defaultValue 5
31
- *
32
- * @remarks
33
- * <br/> - This property only applies to Web and Android.
30
+ * @defaultValue 5 on Web and android, 15 on iOS.
34
31
  */
35
32
  readonly skipForwardInterval?: number;
36
33
 
37
34
  /**
38
35
  * The amount of seconds the player will skip backward.
39
36
  *
40
- * @defaultValue 5
41
- *
42
- * @remarks
43
- * <br/> - This property only applies to Web and Android.
37
+ * @defaultValue 5 on Web and android, 15 on iOS.
44
38
  */
45
39
  readonly skipBackwardInterval?: number;
46
40
  }
@@ -12,7 +12,7 @@ import type { PresentationMode } from '../presentation/PresentationMode';
12
12
  import type { PiPConfiguration } from '../pip/PiPConfiguration';
13
13
  import type { BackgroundAudioConfiguration } from '../backgroundAudio/BackgroundAudioConfiguration';
14
14
  import type { PlayerVersion } from './PlayerVersion';
15
- import type { EventBroadcastAPI } from "../broadcast/EventBroadcastAPI";
15
+ import type { EventBroadcastAPI } from '../broadcast/EventBroadcastAPI';
16
16
 
17
17
  export type PreloadType = 'none' | 'metadata' | 'auto' | '';
18
18
 
@@ -40,9 +40,6 @@ export type NativeHandleType = unknown;
40
40
  export interface THEOplayer extends EventDispatcher<PlayerEventMap> {
41
41
  /**
42
42
  * The player's adaptive bitrate (ABR) configuration.
43
- *
44
- * @remarks
45
- * <br/> - This property is supported on Android & Web platforms only.
46
43
  */
47
44
  readonly abr: ABRConfiguration | undefined;
48
45
 
@@ -0,0 +1,5 @@
1
+ export interface Resolution {
2
+ readonly width: number;
3
+
4
+ readonly height: number;
5
+ }
@@ -0,0 +1 @@
1
+ export * from './Resolution';
@@ -60,7 +60,6 @@ export interface SourceConfiguration {
60
60
  *
61
61
  * @remarks
62
62
  * <br/> - An empty string (`''`) clears the current poster.
63
- * <br/> - This poster has priority over {@link theoplayer!ChromelessPlayer.poster}.
64
63
  */
65
64
  poster?: string;
66
65
 
@@ -65,6 +65,7 @@ import type {
65
65
  import type { NativeAdEvent } from './adapter/event/native/NativeAdEvent';
66
66
  import { THEOplayerAdapter } from './adapter/THEOplayerAdapter';
67
67
  import { getFullscreenSize } from './utils/Dimensions';
68
+ import { Poster } from './poster/Poster';
68
69
 
69
70
  const INVALID_HANDLE = -1;
70
71
 
@@ -107,6 +108,8 @@ interface THEOplayerRCTViewState {
107
108
  error?: PlayerError;
108
109
  presentationMode?: PresentationMode | undefined;
109
110
  screenSize: ScaledSize;
111
+ posterActive: boolean;
112
+ poster: string | undefined;
110
113
  }
111
114
 
112
115
  type THEOplayerViewNativeComponent = HostComponent<THEOplayerRCTViewProps>;
@@ -120,6 +123,8 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
120
123
  error: undefined,
121
124
  presentationMode: PresentationMode.inline,
122
125
  screenSize: getFullscreenSize(),
126
+ posterActive: false,
127
+ poster: undefined,
123
128
  };
124
129
 
125
130
  constructor(props: THEOplayerViewProps) {
@@ -176,6 +181,8 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
176
181
  private _onSourceChange = () => {
177
182
  this.reset();
178
183
  this._facade.dispatchEvent(new BaseEvent(PlayerEventType.SOURCE_CHANGE));
184
+ this._updatePoster();
185
+ this._showPoster();
179
186
  };
180
187
 
181
188
  private _onLoadStart = () => {
@@ -221,6 +228,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
221
228
 
222
229
  private _onPlay = () => {
223
230
  this._facade.dispatchEvent(new BaseEvent(PlayerEventType.PLAY));
231
+ this._hidePoster();
224
232
  };
225
233
 
226
234
  private _onPlaying = () => {
@@ -352,9 +360,21 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
352
360
  this._facade.dispatchEvent(new DefaultResizeEvent(event.nativeEvent.width, event.nativeEvent.height));
353
361
  };
354
362
 
363
+ private _updatePoster = () => {
364
+ this.setState({ poster: this._facade.source?.poster });
365
+ };
366
+
367
+ private _showPoster = () => {
368
+ this.setState({ posterActive: true });
369
+ };
370
+
371
+ private _hidePoster = () => {
372
+ this.setState({ posterActive: false });
373
+ };
374
+
355
375
  public render(): JSX.Element {
356
376
  const { config, style, children } = this.props;
357
- const { presentationMode, screenSize: fullscreenSize } = this.state;
377
+ const { presentationMode, screenSize: fullscreenSize, posterActive, poster } = this.state;
358
378
 
359
379
  return (
360
380
  <View style={[styles.base, style, presentationMode === PresentationMode.fullscreen ? fullscreenSize : {}]}>
@@ -392,6 +412,7 @@ export class THEOplayerView extends PureComponent<React.PropsWithChildren<THEOpl
392
412
  onNativePresentationModeChange={this._onPresentationModeChange}
393
413
  onNativeResize={this._onResize}
394
414
  />
415
+ {posterActive && <Poster uri={poster} />}
395
416
  {children}
396
417
  </View>
397
418
  );
@@ -198,7 +198,7 @@ export class THEOplayerAdapter extends DefaultEventDispatcher<PlayerEventMap> im
198
198
  };
199
199
 
200
200
  get abr(): ABRConfiguration | undefined {
201
- return Platform.OS === 'android' ? this._abrAdapter : undefined;
201
+ return this._abrAdapter;
202
202
  }
203
203
 
204
204
  get ads(): AdsAPI {
@@ -1,4 +1,4 @@
1
- import type { ABRConfiguration, ABRStrategy, THEOplayerView } from 'react-native-theoplayer';
1
+ import type { ABRConfiguration, ABRStrategy, Resolution, THEOplayerView } from 'react-native-theoplayer';
2
2
  import { NativeModules } from 'react-native';
3
3
 
4
4
  const NativePlayerModule = NativeModules.THEORCTPlayerModule;
@@ -7,6 +7,8 @@ export class AbrAdapter implements ABRConfiguration {
7
7
  private readonly _view: THEOplayerView;
8
8
  private _strategy: ABRStrategy | undefined;
9
9
  private _targetBuffer: number | undefined;
10
+ private _preferredPeakBitRate: number | undefined;
11
+ private _preferredMaximumResolution: Resolution | undefined;
10
12
 
11
13
  constructor(view: THEOplayerView) {
12
14
  this._view = view;
@@ -30,10 +32,30 @@ export class AbrAdapter implements ABRConfiguration {
30
32
  this.updateConfig();
31
33
  }
32
34
 
35
+ get preferredPeakBitRate(): number | undefined {
36
+ return this._preferredPeakBitRate;
37
+ }
38
+
39
+ set preferredPeakBitRate(preferredPeakBitRate: number | undefined) {
40
+ this._preferredPeakBitRate = preferredPeakBitRate;
41
+ this.updateConfig();
42
+ }
43
+
44
+ get preferredMaximumResolution(): Resolution | undefined {
45
+ return this._preferredMaximumResolution;
46
+ }
47
+
48
+ set preferredMaximumResolution(preferredMaximumResolution: Resolution | undefined) {
49
+ this._preferredMaximumResolution = preferredMaximumResolution;
50
+ this.updateConfig();
51
+ }
52
+
33
53
  private updateConfig() {
34
54
  NativePlayerModule.setABRConfig(this._view.nativeHandle, {
35
55
  targetBuffer: this._targetBuffer,
36
56
  strategy: this._strategy,
57
+ preferredPeakBitRate: this._preferredPeakBitRate,
58
+ preferredMaximumResolution: this._preferredMaximumResolution,
37
59
  });
38
60
  }
39
61
  }
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { Image, StyleSheet, View } from 'react-native';
3
+
4
+ export const Poster = (props: { uri: string | undefined }) => {
5
+ const { uri } = props;
6
+ if (!uri) {
7
+ return <></>;
8
+ }
9
+ return (
10
+ <View style={[StyleSheet.absoluteFill, { justifyContent: 'center' }]}>
11
+ <Image style={{ aspectRatio: 16 / 9 }} source={{ uri }} />
12
+ </View>
13
+ );
14
+ };