Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.25.0 #465

Merged
merged 15 commits into from
Jun 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 43 additions & 33 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
# Changelog

## [0.24.0] (2024-06-04)
## [0.25.0]

### Added

- `viewRef` property to `PlayerView` to allow setting a reference to the native view

### Fixed

- iOS: Possible crash on hot-reload

## [0.24.0] - 2024-06-04

### Added

Expand All @@ -18,7 +28,7 @@
- Android: Can't create a new Player with an existing NativeID (to bind to the same native Player)
- iOS: Performance problem with large WebVTT thumbnail or subtitle tracks

## [0.23.0] (2024-05-08)
## [0.23.0] - 2024-05-08

### Changed

Expand All @@ -29,7 +39,7 @@

- Android: Player Web UI freezing sometimes, under excessive WebUI-RN code messaging

## [0.22.0] (2024-04-15)
## [0.22.0] - 2024-04-15

### Added

Expand All @@ -40,7 +50,7 @@
- Update Bitmovin's native iOS SDK version to `3.60.0`
- Update IMA SDK dependency on iOS to `3.19.1`, respectively `4.9.2` for tvOS

## [0.21.0] (2024-04-08)
## [0.21.0] - 2024-04-08

### Fixed

Expand All @@ -53,7 +63,7 @@
- Update Bitmovin's native Android SDK version to `3.65.0`
- Update Bitmovin's native iOS SDK version to `3.59.0`

## [0.20.0] (2024-03-29)
## [0.20.0] - 2024-03-29

### Added

Expand All @@ -64,7 +74,7 @@

- Update Bitmovin's native Android SDK version to `3.64.0`

## [0.19.0] (2024-03-22)
## [0.19.0] - 2024-03-22

### Added

Expand All @@ -79,7 +89,7 @@

- Fix potential event name conflicts with other 3rd party libraries

## [0.18.0] (2024-03-06)
## [0.18.0] - 2024-03-06

### Changed

Expand All @@ -91,7 +101,7 @@

- Android: Subtitles appear out of frame

## [0.17.0] (2024-01-26)
## [0.17.0] - 2024-01-26

### Added

Expand All @@ -105,14 +115,14 @@

- Remove `patch-package` usage from released product

## [0.16.0] (2024-01-17)
## [0.16.0] - 2024-01-17

### Changed

- Update Bitmovin's native Android SDK version to `3.56.0`
- Android: Kotlin version to `1.9.21`

## [0.15.0] (2023-12-18)
## [0.15.0] - 2023-12-18

### Added

Expand All @@ -125,7 +135,7 @@
- Update Bitmovin's native Android SDK version to `3.54.0`
- Android: Kotlin version to `1.8.20`

## [0.14.2] (2023-11-27)
## [0.14.2] - 2023-11-27

### Fixed

Expand All @@ -135,13 +145,13 @@
- iOS: hide home indicator when entering fullscreen mode in the example application
- iOS: invalid `loadingState` value in `SeekEvent`, `SourceLoadEvent`, `SourceLoadedEvent` and in `SourceUnloadedEvent`

## [0.14.1] (2023-11-16)
## [0.14.1] - 2023-11-16

### Fixed

- Android: `PlayerView` destroys attached `Player` instance on destroy. `Player` lifecycle must be handled on the creation side

## [0.14.0] (2023-11-14)
## [0.14.0] - 2023-11-14

### Added

Expand All @@ -157,7 +167,7 @@
- Android: Playback doesn't pause when app goes to background
- Android: `PlayerView.onDestroy` not being called when the view is detached from the view hierarchy

## [0.13.0] (2023-10-20)
## [0.13.0] - 2023-10-20

### Added

Expand All @@ -180,7 +190,7 @@

- `PlaybackConfig.isPictureInPictureEnabled` in favor of `PictureInPictureConfig.isEnabled`

## [0.12.0] (2023-09-25)
## [0.12.0] - 2023-09-25

### Added

Expand All @@ -200,7 +210,7 @@
- `AnalyticsCollector` in favor of the bundled analytics functionality
- `CdnProvider`, as the property on the `AnalyticsConfig` is now a `string`

## [0.11.0] (2023-09-11)
## [0.11.0] - 2023-09-11

### Added

Expand All @@ -212,7 +222,7 @@

- Update Bitmovin's native Android SDK version to `3.43.0`

## [0.10.0] (2023-09-04)
## [0.10.0] - 2023-09-04

### Added

Expand All @@ -221,19 +231,19 @@
- `PlayerConfig.adaptationConfig` to allow configuring the player's adaptation behavior
- `Player.setMaxSelectableBitrate` to allow setting the maximum selectable bitrate on the `Player`

## [0.9.2] (2023-08-24)
## [0.9.2] - 2023-08-24

### Changed

- Update Bitmovin's native iOS SDK version to `3.43.1`

## [0.9.1] (2023-08-17)
## [0.9.1] - 2023-08-17

### Fixed

- Android: Player sometimes plays sound but doesn't display video nor controls.

## [0.9.0] (2023-08-11)
## [0.9.0] - 2023-08-11

### Added

Expand All @@ -249,7 +259,7 @@

- Android: Player sometimes plays sound but no video

## [0.8.0] (2023-07-31)
## [0.8.0] - 2023-07-31

### Added

Expand All @@ -266,13 +276,13 @@

- Android: Sporadic black screen after initialization

## [0.7.2] (2023-07-03)
## [0.7.2] - 2023-07-03

### Fixed

- Android: None of the Player Web UI menu items work (anything that triggers a native UI pop up)

## [0.7.1] (2023-06-29)
## [0.7.1] - 2023-06-29

### Added

Expand All @@ -282,7 +292,7 @@

- Project forces the usage of specific `react-native` version

## [0.7.0] (2023-06-26)
## [0.7.0] - 2023-06-26

### Added

Expand All @@ -293,7 +303,7 @@

- Android module build issues

## [0.6.0] (2023-03-27)
## [0.6.0] - 2023-03-27

### Added

Expand All @@ -306,13 +316,13 @@
- Update Bitmovin's native iOS SDK version to `v3.36.0`.
- Update Bitmovin's native Android SDK version to `v3.35.0`.

## [0.5.1] (2023-01-23)
## [0.5.1] - 2023-01-23

### Fixed

- Fix missing export of `FullscreenHandler` to allow fullscreen support to be integrated.

## [0.5.0] (2023-01-13)
## [0.5.0] - 2023-01-13

This version introduces analytics integration, fullscreen support and customizing the Player UI.

Expand All @@ -322,7 +332,7 @@ This version introduces analytics integration, fullscreen support and customizin
- `FullscreenHandler` support.
- Bitmovin Player Web UI customization via `styleConfig` property on player creation.

## [0.4.0] (2022-11-24)
## [0.4.0] - 2022-11-24

This version introduces the advertising API, full Picture in Picture support and exposes Stall events.

Expand All @@ -332,15 +342,15 @@ This version introduces the advertising API, full Picture in Picture support and
- Complete Picture in Picture support.
- `onStallStarted`/`onStallEnded` events support. (Thanks to @joornby-angel)

## [0.3.1] (2022-10-26)
## [0.3.1] - 2022-10-26

Adds tweaks configuration support.

### Added

- Support for setting `TweaksConfig` on both Android and iOS.

## [0.3.0] (2022-10-13)
## [0.3.0] - 2022-10-13

Adds support for tvOS projects and ability to customize the default playback behavior of `Player` objects.

Expand All @@ -359,15 +369,15 @@ Adds support for tvOS projects and ability to customize the default playback beh

- Fix pod installation error on tvOS projects by adding `:tvos => 12.4` to the list of supported platforms.

## [0.2.1] (2022-09-19)
## [0.2.1] - 2022-09-19

Fixes an NPM installation issue.

### Fixed

- Fix installation error caused by wrong husky setup when fetching package from NPM.

## [0.2.0] (2022-08-23)
## [0.2.0] - 2022-08-23

Adds support for DRM playback on Android (Widevine only) and iOS (FairPlay only), as well as configuring
external subtitle tracks for a stream source.
Expand All @@ -387,7 +397,7 @@ external subtitle tracks for a stream source.

- Fix error caused when navigating back from screens containing a `PlayerView` child.

## [0.1.0] (2022-07-11)
## [0.1.0] - 2022-07-11

Adds support for basic playback using Bitmovin's Web UI as the default (and only) player UI.
No support for custom UI yet.
Expand Down
17 changes: 13 additions & 4 deletions example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,16 @@ Before running the application, make sure to set up your Bitmovin's license key

**iOS**

Edit the license key in `ios/BitmovinPlayerReactNativeExample/Info.plist`:
Edit the license key in `example/ios/BitmovinPlayerReactNativeExample/Info.plist`:

```xml
<key>BitmovinPlayerLicenseKey</key>
<string>ENTER_LICENSE_KEY</string>
```

**tvOS**

Edit the license key in `example/ios/BitmovinPlayerReactNativeExample-tvOS/Info.plist`:

```xml
<key>BitmovinPlayerLicenseKey</key>
Expand All @@ -46,7 +55,7 @@ Edit the license key in `ios/BitmovinPlayerReactNativeExample/Info.plist`:

**Android**

Edit the license key in `android/app/src/main/AndroidManifest.xml`:
Edit the license key in `example/android/app/src/main/AndroidManifest.xml`:

```xml
<meta-data android:name="BITMOVIN_PLAYER_LICENSE_KEY" android:value="<ENTER_LICENSE_KEY>" />
Expand Down Expand Up @@ -97,12 +106,12 @@ yarn example android # Run examples on Android
Hint: You can provide a specific simulator by name when using `--simulator` flag. `xcrun simctl list devices available` provides you with a list of available devices in your environment.

```sh
yarn example ios --simulator="iPhone 14 Pro"
yarn example ios --simulator="iPhone 15 Pro"
```

**IDE**

You can also open the iOS project using Xcode by typing `xed example/ios/` on terminal, or `studio example/android/` to open the android project in Android Studio (make sure to setup its binaries first).
You can also open the iOS project using Xcode by typing `xed example/ios` on terminal, or `studio example/android` to open the android project in Android Studio (make sure to setup its binaries first).

### Running the bundler only

Expand Down
4 changes: 2 additions & 2 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1051,7 +1051,7 @@ PODS:
- React-jsi (= 0.73.4-0)
- React-logger (= 0.73.4-0)
- React-perflogger (= 0.73.4-0)
- RNBitmovinPlayer (0.24.0):
- RNBitmovinPlayer (0.25.0):
- BitmovinPlayer (= 3.64.0)
- GoogleAds-IMA-iOS-SDK (= 3.19.1)
- GoogleAds-IMA-tvOS-SDK (= 4.9.2)
Expand Down Expand Up @@ -1305,7 +1305,7 @@ SPEC CHECKSUMS:
React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8
React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74
ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2
RNBitmovinPlayer: ae8a975f34f4821098a40f1cf6607ae2b399de84
RNBitmovinPlayer: f2c78273cbb5de5b98609b6ed624fd8aa9a0da07
RNCPicker: b18aaf30df596e9b1738e7c1f9ee55402a229dca
RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
Expand Down
2 changes: 1 addition & 1 deletion example/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"private": true,
"name": "bitmovin-player-react-native-sample",
"description": "Example app showcasing bitmovin's RN player SDK",
"description": "Example app showcasing Bitmovin's React Native Player SDK",
"version": "0.0.1",
"scripts": {
"postinstall": "patch-package",
Expand Down
9 changes: 9 additions & 0 deletions ios/PlayerModule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@ public class PlayerModule: NSObject, RCTBridgeModule { // swiftlint:disable:this
bridge.uiManager.methodQueue
}

deinit {
// Destroy all players on the main thread when the module is deallocated.
// This is necessary when the IMA SDK is present in the app, as it may crash if the players are destroyed on a
// background thread.
DispatchQueue.main.async { [players] in
players.values.forEach { $0.destroy() }
}
}

/**
Fetches the `Player` instance associated with `nativeId` from the internal players.
- Parameter nativeId: `Player` instance ID.
Expand Down
Loading
Loading