Skip to content

Commit b5136f9

Browse files
committed
Merge branch 'support/v3.x' into feature/improve-timeline-markers-in-live
# Conflicts: # CHANGELOG.md
2 parents 848b1b1 + 7d6afe7 commit b5136f9

File tree

6 files changed

+28
-19
lines changed

6 files changed

+28
-19
lines changed

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
1010
- `SeekBarConfig.markerUpdateIntervalMs` to customize the update interval of the TimeLine markers in a live stream
1111

1212
### Fixed
13-
- Incorrect syntax of CSS `URL` functions, leading to problems with URLs containing special characters like `(` or `)`
1413
- `TimelineMarker`s no longer move unexpected during time-shifting in a live stream
1514

15+
## [3.104.0] - 2025-12-09
16+
17+
### Fixed
18+
- Incorrect sytnax of CSS `URL` functions, leading to problems with URLs containing special characters like `(` or `)`
19+
- Type incompatibility warnings with Player version 8.235.0 and higher
20+
1621
## [3.103.1] - 2025-10-07
1722

1823
### Changed
@@ -1191,6 +1196,7 @@ Version 2.0 of the UI framework is built for player 7.1. If absolutely necessary
11911196
## 1.0.0 (2017-02-03)
11921197
- First release
11931198

1199+
[3.104.0]: https://github.com/bitmovin/bitmovin-player-ui/compare/v3.103.1...v3.104.0
11941200
[3.103.1]: https://github.com/bitmovin/bitmovin-player-ui/compare/v3.102.0...v3.103.1
11951201
[3.102.0]: https://github.com/bitmovin/bitmovin-player-ui/compare/v3.101.0...v3.102.0
11961202
[3.101.0]: https://github.com/bitmovin/bitmovin-player-ui/compare/v3.100.0...v3.101.0

package-lock.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "bitmovin-player-ui",
3-
"version": "3.103.1",
3+
"version": "3.104.0",
44
"description": "Bitmovin Player UI Framework",
55
"main": "./dist/js/framework/main.js",
66
"types": "./dist/js/framework/main.d.ts",
@@ -34,7 +34,7 @@
3434
"@types/jest": "^29.5.0",
3535
"@types/jsdom": "^21.1.0",
3636
"autoprefixer": "^10.4.14",
37-
"bitmovin-player": "^8.129.0",
37+
"bitmovin-player": "^8.237.0",
3838
"browser-sync": "^2.29.0",
3939
"browserify": "^17.0.0",
4040
"cssnano": "^5.1.15",

spec/helper/PlayerEventEmitter.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ export interface ViewModeAvailabilityChangedEvent extends PlayerEventBase {
3030
}
3131

3232
export class PlayerEventEmitter {
33-
private eventHandlers: { [eventType: string]: PlayerEventCallback[]; } = {};
33+
private eventHandlers: { [eventType: string]: PlayerEventCallback<PlayerEvent>[]; } = {};
3434

35-
public on(eventType: PlayerEvent, callback: PlayerEventCallback) {
35+
public on<T extends PlayerEvent>(eventType: T, callback: PlayerEventCallback<T>) {
3636
if (!this.eventHandlers[eventType]) {
3737
this.eventHandlers[eventType] = [];
3838
}
@@ -42,7 +42,7 @@ export class PlayerEventEmitter {
4242

4343
public fireEvent<E extends PlayerEventBase>(event: E) {
4444
if (this.eventHandlers[event.type]) {
45-
this.eventHandlers[event.type].forEach((callback: PlayerEventCallback) => callback(event));
45+
this.eventHandlers[event.type].forEach(callback => callback(event));
4646
}
4747
}
4848

@@ -75,6 +75,8 @@ export class PlayerEventEmitter {
7575
size: 1,
7676
duration: 1,
7777
isInit: false,
78+
url: 'https://bitmovin.com/seg.m4s',
79+
timeToFirstByte: 0.5,
7880
});
7981
}
8082

src/ts/mobilev3playerapi.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ export interface MobileV3SourceErrorEvent extends PlayerEventBase {
2020
export type MobileV3PlayerEventType = PlayerEvent | MobileV3PlayerEvent;
2121

2222
export interface MobileV3PlayerAPI extends PlayerAPI {
23-
on(eventType: MobileV3PlayerEventType, callback: PlayerEventCallback): void;
23+
on<T extends PlayerEvent>(eventType: T, callback: PlayerEventCallback<T>): void;
24+
on<T extends MobileV3PlayerEvent>(eventType: T, callback: (event: PlayerEventBase) => void): void;
2425
exports: PlayerAPI['exports'] & { PlayerEvent: MobileV3PlayerEventType };
2526
}
2627

src/ts/uimanager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -859,7 +859,7 @@ export class PlayerWrapper {
859859
private player: PlayerAPI;
860860
private wrapper: WrappedPlayer;
861861

862-
private eventHandlers: { [eventType: string]: PlayerEventCallback[]; } = {};
862+
private eventHandlers: { [eventType: string]: PlayerEventCallback<PlayerEvent>[]; } = {};
863863

864864
constructor(player: PlayerAPI) {
865865
this.player = player;
@@ -921,7 +921,7 @@ export class PlayerWrapper {
921921
}
922922

923923
// Explicitly add a wrapper method for 'on' that adds added event handlers to the event list
924-
wrapper.on = (eventType: PlayerEvent, callback: PlayerEventCallback) => {
924+
wrapper.on = <T extends PlayerEvent>(eventType: T, callback: PlayerEventCallback<T>) => {
925925
player.on(eventType, callback);
926926

927927
if (!this.eventHandlers[eventType]) {
@@ -934,7 +934,7 @@ export class PlayerWrapper {
934934
};
935935

936936
// Explicitly add a wrapper method for 'off' that removes removed event handlers from the event list
937-
wrapper.off = (eventType: PlayerEvent, callback: PlayerEventCallback) => {
937+
wrapper.off = <T extends PlayerEvent>(eventType: T, callback: PlayerEventCallback<T>) => {
938938
player.off(eventType, callback);
939939

940940
if (this.eventHandlers[eventType]) {

0 commit comments

Comments
 (0)