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.19.0 #416

Merged
merged 39 commits into from
Mar 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
aab562a
Add events in ts
123mpozzi Mar 1, 2024
156f499
Add listeners in ts
123mpozzi Mar 1, 2024
15dcf35
Add Kotlin serializers
123mpozzi Mar 1, 2024
7a02c60
Add kotlin listeners bindings
123mpozzi Mar 1, 2024
eae4991
Add Swift serializers
123mpozzi Mar 1, 2024
39cefdd
Add listeners and bindings on Swift
123mpozzi Mar 1, 2024
310737d
Merge branch 'development' into feature/support-cue-enter-and-exit-ev…
123mpozzi Mar 1, 2024
6175942
Remove one TODO
123mpozzi Mar 1, 2024
423250a
Improve docs
123mpozzi Mar 1, 2024
215e5f6
Fix `text` being a number
123mpozzi Mar 1, 2024
27fde2e
Use common interface for both cue events
123mpozzi Mar 1, 2024
76c301c
Remove TODOs
123mpozzi Mar 1, 2024
666db00
Add cue events to captions demo page
123mpozzi Mar 1, 2024
2444319
Cover integration
123mpozzi Mar 4, 2024
7067fb3
Do not use a common interface for both cue events
123mpozzi Mar 4, 2024
b2b311a
Add CHANGELOG entry
123mpozzi Mar 4, 2024
2a4cc12
Align listener docs to match the event phrasing
123mpozzi Mar 4, 2024
ca321df
Add note into docs for `text` being null
123mpozzi Mar 5, 2024
0aa1e4c
Merge pull request #410 from bitmovin/main
rolandkakonyi Mar 6, 2024
d960929
Revert "Add note into docs for `text` being null"
123mpozzi Mar 6, 2024
f60c8e6
Merge commit '0aa1e4cfbca65ef96b7823c63d529333e26e4f50' into feature/…
123mpozzi Mar 6, 2024
941eec6
Merge pull request #406 from bitmovin/feature/support-cue-enter-and-e…
123mpozzi Mar 6, 2024
a1cf2eb
chore(ios): update ios player version to 3.57.0
Mar 8, 2024
62dabc6
Merge pull request #411 from bitmovin/update_ios_player_to_3.57.0
rolandkakonyi Mar 8, 2024
d2bbbdb
fix(event conflicts): fix event conflicts for iOS and tvOS
rolandkakonyi Mar 18, 2024
3273b6d
fix(event conflicts): fix event listeners mapping for iOS and tvOS
123mpozzi Mar 19, 2024
7885863
Rename prefixes to start with `on`
123mpozzi Mar 19, 2024
b1561a0
Fix events conflict on Android
123mpozzi Mar 19, 2024
c10b031
[skip ci] Add changelog entry
123mpozzi Mar 19, 2024
8fe5a24
Update CHANGELOG entry to be less specific
123mpozzi Mar 21, 2024
b07a53c
Merge pull request #412 from bitmovin/feature/PRN-108-fix-event-liste…
123mpozzi Mar 21, 2024
f2efaf2
chore(ios): update ios player version to 3.57.2
Mar 22, 2024
95b6574
Merge pull request #413 from bitmovin/update_ios_player_to_3.57.2
rolandkakonyi Mar 22, 2024
521f1ba
chore(android): update android player version to 3.63.0
strangesource Mar 22, 2024
3bcc9f6
ci: fix create sdk update workflow missing SwiftLint dependency
rolandkakonyi Mar 22, 2024
3af0de6
Merge branch 'development' of github.com:bitmovin/bitmovin-player-rea…
rolandkakonyi Mar 22, 2024
7783c1c
Merge pull request #415 from bitmovin/bitmovin/update_android_player_…
strangesource Mar 22, 2024
a879dfb
chore: add changelog entry for iOS SDK update
rolandkakonyi Mar 22, 2024
97f0097
chore: prepare release 0.19.0
Mar 22, 2024
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
8 changes: 6 additions & 2 deletions .github/actions/setup-environment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ inputs:
description: Setup node and install root and subproject node modules (overrides `node` input)
default: false
required: false
brew:
description: Setup Homebrew
default: false
required: false
ios:
description: Setup xcode and install dependencies
description: Setup xcode and install dependencies (overrides `brew` input)
default: false
required: false
restore-pods:
Expand Down Expand Up @@ -68,7 +72,7 @@ runs:
xcode-version: '14.3'

- name: Install dependencies
if: ${{ inputs.ios == 'true' }}
if: ${{ inputs.ios == 'true' || inputs.brew == 'true' }}
shell: bash
run: brew bundle install

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/create-sdk-update-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ jobs:
with:
node: true
restore-pods: true
brew: true

- name: Bump iOS player SDK version
if: ${{ inputs.sdk_name == 'ios' }}
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## [0.19.0]

### Added

- `CueEnterEvent` and `CueExitEvent` to signal when a subtitle entry transitions into an active or inactive status respectively

### Changed

- Update Bitmovin's native Android SDK version to `3.63.0`
- Update Bitmovin's native iOS SDK version to `3.57.2`

### Fixed

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

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

### Changed
Expand Down
2 changes: 1 addition & 1 deletion RNBitmovinPlayer.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Pod::Spec.new do |s|
s.source_files = "ios/**/*.{h,m,mm,swift}"

s.dependency "React-Core"
s.dependency "BitmovinPlayer", "3.56.3"
s.dependency "BitmovinPlayer", "3.57.2"
s.ios.dependency "GoogleAds-IMA-iOS-SDK", "3.18.4"
s.tvos.dependency "GoogleAds-IMA-tvOS-SDK", "4.8.2"
end
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -103,5 +103,5 @@ dependencies {
// Bitmovin
implementation 'com.google.ads.interactivemedia.v3:interactivemedia:3.31.0'
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'com.bitmovin.player:player:3.61.0+jason'
implementation 'com.bitmovin.player:player:3.63.0+jason'
}
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ private val EVENT_CLASS_TO_REACT_NATIVE_NAME_MAPPING = mapOf(
PlayerEvent.CastStopped::class to "castStopped",
PlayerEvent.CastWaitingForDevice::class to "castWaitingForDevice",
PlayerEvent.CastTimeUpdated::class to "castTimeUpdated",
PlayerEvent.CueEnter::class to "cueEnter",
PlayerEvent.CueExit::class to "cueExit",
)

private val EVENT_CLASS_TO_REACT_NATIVE_NAME_MAPPING_UI = mapOf<KClass<out Event>, String>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,65 +68,67 @@ class RNPlayerViewManager(private val context: ReactApplicationContext) : Simple
* be accessed from React.
*/
private val bubblingEventsMapping: Map<String, String> = mapOf(
"event" to "onEvent",
"playerError" to "onPlayerError",
"playerWarning" to "onPlayerWarning",
"destroy" to "onDestroy",
"muted" to "onMuted",
"unmuted" to "onUnmuted",
"ready" to "onReady",
"paused" to "onPaused",
"play" to "onPlay",
"playing" to "onPlaying",
"playbackFinished" to "onPlaybackFinished",
"seek" to "onSeek",
"seeked" to "onSeeked",
"timeShift" to "onTimeShift",
"timeShifted" to "onTimeShifted",
"stallStarted" to "onStallStarted",
"stallEnded" to "onStallEnded",
"timeChanged" to "onTimeChanged",
"sourceLoad" to "onSourceLoad",
"sourceLoaded" to "onSourceLoaded",
"sourceUnloaded" to "onSourceUnloaded",
"sourceError" to "onSourceError",
"sourceWarning" to "onSourceWarning",
"audioAdded" to "onAudioAdded",
"audioChanged" to "onAudioChanged",
"audioRemoved" to "onAudioRemoved",
"subtitleAdded" to "onSubtitleAdded",
"subtitleChanged" to "onSubtitleChanged",
"subtitleRemoved" to "onSubtitleRemoved",
"downloadFinished" to "onDownloadFinished",
"videoDownloadQualityChanged" to "onVideoDownloadQualityChanged",
"pictureInPictureAvailabilityChanged" to "onPictureInPictureAvailabilityChanged",
"pictureInPictureEnter" to "onPictureInPictureEnter",
"pictureInPictureExit" to "onPictureInPictureExit",
"adBreakFinished" to "onAdBreakFinished",
"adBreakStarted" to "onAdBreakStarted",
"adClicked" to "onAdClicked",
"adError" to "onAdError",
"adFinished" to "onAdFinished",
"adManifestLoad" to "onAdManifestLoad",
"adManifestLoaded" to "onAdManifestLoaded",
"adQuartile" to "onAdQuartile",
"adScheduled" to "onAdScheduled",
"adSkipped" to "onAdSkipped",
"adStarted" to "onAdStarted",
"videoPlaybackQualityChanged" to "onVideoPlaybackQualityChanged",
"fullscreenEnabled" to "onFullscreenEnabled",
"fullscreenDisabled" to "onFullscreenDisabled",
"fullscreenEnter" to "onFullscreenEnter",
"fullscreenExit" to "onFullscreenExit",
"castStart" to "onCastStart",
"castPlaybackFinished" to "onCastPlaybackFinished",
"castPaused" to "onCastPaused",
"castPlaying" to "onCastPlaying",
"castStarted" to "onCastStarted",
"castAvailable" to "onCastAvailable",
"castStopped" to "onCastStopped",
"castWaitingForDevice" to "onCastWaitingForDevice",
"castTimeUpdated" to "onCastTimeUpdated",
"event" to "onBmpEvent",
"playerError" to "onBmpPlayerError",
"playerWarning" to "onBmpPlayerWarning",
"destroy" to "onBmpDestroy",
"muted" to "onBmpMuted",
"unmuted" to "onBmpUnmuted",
"ready" to "onBmpReady",
"paused" to "onBmpPaused",
"play" to "onBmpPlay",
"playing" to "onBmpPlaying",
"playbackFinished" to "onBmpPlaybackFinished",
"seek" to "onBmpSeek",
"seeked" to "onBmpSeeked",
"timeShift" to "onBmpTimeShift",
"timeShifted" to "onBmpTimeShifted",
"stallStarted" to "onBmpStallStarted",
"stallEnded" to "onBmpStallEnded",
"timeChanged" to "onBmpTimeChanged",
"sourceLoad" to "onBmpSourceLoad",
"sourceLoaded" to "onBmpSourceLoaded",
"sourceUnloaded" to "onBmpSourceUnloaded",
"sourceError" to "onBmpSourceError",
"sourceWarning" to "onBmpSourceWarning",
"audioAdded" to "onBmpAudioAdded",
"audioChanged" to "onBmpAudioChanged",
"audioRemoved" to "onBmpAudioRemoved",
"subtitleAdded" to "onBmpSubtitleAdded",
"subtitleChanged" to "onBmpSubtitleChanged",
"subtitleRemoved" to "onBmpSubtitleRemoved",
"downloadFinished" to "onBmpDownloadFinished",
"videoDownloadQualityChanged" to "onBmpVideoDownloadQualityChanged",
"pictureInPictureAvailabilityChanged" to "onBmpPictureInPictureAvailabilityChanged",
"pictureInPictureEnter" to "onBmpPictureInPictureEnter",
"pictureInPictureExit" to "onBmpPictureInPictureExit",
"adBreakFinished" to "onBmpAdBreakFinished",
"adBreakStarted" to "onBmpAdBreakStarted",
"adClicked" to "onBmpAdClicked",
"adError" to "onBmpAdError",
"adFinished" to "onBmpAdFinished",
"adManifestLoad" to "onBmpAdManifestLoad",
"adManifestLoaded" to "onBmpAdManifestLoaded",
"adQuartile" to "onBmpAdQuartile",
"adScheduled" to "onBmpAdScheduled",
"adSkipped" to "onBmpAdSkipped",
"adStarted" to "onBmpAdStarted",
"videoPlaybackQualityChanged" to "onBmpVideoPlaybackQualityChanged",
"fullscreenEnabled" to "onBmpFullscreenEnabled",
"fullscreenDisabled" to "onBmpFullscreenDisabled",
"fullscreenEnter" to "onBmpFullscreenEnter",
"fullscreenExit" to "onBmpFullscreenExit",
"castStart" to "onBmpCastStart",
"castPlaybackFinished" to "onBmpCastPlaybackFinished",
"castPaused" to "onBmpCastPaused",
"castPlaying" to "onBmpCastPlaying",
"castStarted" to "onBmpCastStarted",
"castAvailable" to "onBmpCastAvailable",
"castStopped" to "onBmpCastStopped",
"castWaitingForDevice" to "onBmpCastWaitingForDevice",
"castTimeUpdated" to "onBmpCastTimeUpdated",
"cueEnter" to "onBmpCueEnter",
"cueExit" to "onBmpCueExit",
)

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,18 @@ fun PlayerEvent.toJson(): WritableMap {
json.putString("deviceName", deviceName)
}

is PlayerEvent.CueEnter -> {
json.putDouble("start", start)
json.putDouble("end", end)
json.putString("text", text)
}

is PlayerEvent.CueExit -> {
json.putDouble("start", start)
json.putDouble("end", end)
json.putString("text", text)
}

else -> {
// Event is not supported yet or does not have any additional data
}
Expand Down
24 changes: 12 additions & 12 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
PODS:
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.0):
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.1):
- BitmovinAnalyticsCollector/Core
- BitmovinPlayerCore (~> 3.48)
- BitmovinAnalyticsCollector/Core (3.6.0)
- BitmovinPlayer (3.56.3):
- BitmovinAnalyticsCollector/Core (3.6.1)
- BitmovinPlayer (3.57.2):
- BitmovinAnalyticsCollector/BitmovinPlayer (~> 3.0)
- BitmovinPlayerCore (= 3.56.3)
- BitmovinPlayerCore (3.56.3)
- BitmovinPlayerCore (= 3.57.2)
- BitmovinPlayerCore (3.57.2)
- boost (1.83.0)
- DoubleConversion (1.1.6)
- FBLazyVector (0.73.4-0)
Expand Down Expand Up @@ -1051,8 +1051,8 @@ PODS:
- React-jsi (= 0.73.4-0)
- React-logger (= 0.73.4-0)
- React-perflogger (= 0.73.4-0)
- RNBitmovinPlayer (0.18.0):
- BitmovinPlayer (= 3.56.3)
- RNBitmovinPlayer (0.19.0):
- BitmovinPlayer (= 3.57.2)
- GoogleAds-IMA-iOS-SDK (= 3.18.4)
- GoogleAds-IMA-tvOS-SDK (= 4.8.2)
- React-Core
Expand Down Expand Up @@ -1248,9 +1248,9 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
BitmovinAnalyticsCollector: 70f10cfc67f7e4bf38daddf4362f54bd6125683d
BitmovinPlayer: 307f5fda61d0a91c3c820207dd6ae0f183a06c27
BitmovinPlayerCore: a0022248b42971e7df20435790703f17fb08359d
BitmovinAnalyticsCollector: cc31a7ffd96850f5bd4f41b39ea22b467734e9c9
BitmovinPlayer: 4e054aa7959995a779ecaf5e8d995567b8c3437a
BitmovinPlayerCore: 2f5cc0b8233c162f6279ea050c5123ced204aae8
boost: 88202336c3ba1e7a264a83c0c888784b0f360c28
DoubleConversion: 234abba95e31cc2aada0cf3b97cdb11bc5b90575
FBLazyVector: 33a271a7e8de0bd321e47356d8bc3b2d5fb9ddba
Expand Down Expand Up @@ -1305,12 +1305,12 @@ SPEC CHECKSUMS:
React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8
React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74
ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2
RNBitmovinPlayer: 94f75de44ed2e9e640c55ed1a89a867b149f6176
RNBitmovinPlayer: e071744c1452eaa7b70fd119aece83014d83e897
RNCPicker: b18aaf30df596e9b1738e7c1f9ee55402a229dca
RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
Yoga: ab50eb8f7fcf1b36aad1801b5687b66b2c0aa000

PODFILE CHECKSUM: 6a89a6e0087c419fcb3ad7474478c93dc48f198d

COCOAPODS: 1.14.3
COCOAPODS: 1.15.2
2 changes: 2 additions & 0 deletions example/src/screens/SubtitlePlayback.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ export default function SubtitlePlayback() {
<PlayerView
player={player}
style={styles.player}
onCueEnter={onEvent}
onCueExit={onEvent}
onSubtitleAdded={onEvent}
onSubtitleChanged={onEvent}
onSubtitleRemoved={onEvent}
Expand Down
30 changes: 15 additions & 15 deletions integration_test/ios/Podfile.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
PODS:
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.0):
- BitmovinAnalyticsCollector/BitmovinPlayer (3.6.1):
- BitmovinAnalyticsCollector/Core
- BitmovinPlayerCore (~> 3.48)
- BitmovinAnalyticsCollector/Core (3.6.0)
- BitmovinPlayer (3.56.3):
- BitmovinAnalyticsCollector/Core (3.6.1)
- BitmovinPlayer (3.57.2):
- BitmovinAnalyticsCollector/BitmovinPlayer (~> 3.0)
- BitmovinPlayerCore (= 3.56.3)
- BitmovinPlayerCore (3.56.3)
- BitmovinPlayerCore (= 3.57.2)
- BitmovinPlayerCore (3.57.2)
- boost (1.83.0)
- DoubleConversion (1.1.6)
- FBLazyVector (0.73.4-0)
Expand Down Expand Up @@ -1040,8 +1040,8 @@ PODS:
- React-jsi (= 0.73.4-0)
- React-logger (= 0.73.4-0)
- React-perflogger (= 0.73.4-0)
- RNBitmovinPlayer (0.17.0):
- BitmovinPlayer (= 3.56.3)
- RNBitmovinPlayer (0.18.0):
- BitmovinPlayer (= 3.57.2)
- GoogleAds-IMA-iOS-SDK (= 3.18.4)
- GoogleAds-IMA-tvOS-SDK (= 4.8.2)
- React-Core
Expand Down Expand Up @@ -1215,15 +1215,15 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"

SPEC CHECKSUMS:
BitmovinAnalyticsCollector: 70f10cfc67f7e4bf38daddf4362f54bd6125683d
BitmovinPlayer: 307f5fda61d0a91c3c820207dd6ae0f183a06c27
BitmovinPlayerCore: a0022248b42971e7df20435790703f17fb08359d
BitmovinAnalyticsCollector: cc31a7ffd96850f5bd4f41b39ea22b467734e9c9
BitmovinPlayer: 4e054aa7959995a779ecaf5e8d995567b8c3437a
BitmovinPlayerCore: 2f5cc0b8233c162f6279ea050c5123ced204aae8
boost: 88202336c3ba1e7a264a83c0c888784b0f360c28
DoubleConversion: 74cb0ce4de271b23e772567504735c87134edf0a
DoubleConversion: 234abba95e31cc2aada0cf3b97cdb11bc5b90575
FBLazyVector: 33a271a7e8de0bd321e47356d8bc3b2d5fb9ddba
FBReactNativeSpec: 55b7e93b71f300a051190f63c2afeccd839b7e9a
fmt: 745abaaffe4da13101ae15d70dc68ec3d6a666a2
glog: f0ddebfc00a905e9213e37801095a0a705d2e5f6
glog: a2ded9bf28f0cb2fce90ad21eb419299a500ff6c
GoogleAds-IMA-iOS-SDK: b01284e3bf3d64ba948de6692ffda531452c3713
hermes-engine: e7981489a718dff7c3a2dacd6302b8761375928d
libevent: a6d75fcd7be07cbc5070300ea8dbc8d55dfab88e
Expand Down Expand Up @@ -1267,10 +1267,10 @@ SPEC CHECKSUMS:
React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8
React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74
ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2
RNBitmovinPlayer: d171860884acad7345ce49474f4f907d5445d54a
RNBitmovinPlayer: 205b1ee254cd950b99517c1e23109f86ef357bb9
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
Yoga: e7f2a2256464d4ef7b3825d216bd22aac3b449c1
Yoga: ab50eb8f7fcf1b36aad1801b5687b66b2c0aa000

PODFILE CHECKSUM: 0bfe194f5e28f1cf54d3d732eda8c78fadbeeedd

COCOAPODS: 1.15.2
COCOAPODS: 1.14.3
2 changes: 2 additions & 0 deletions integration_test/playertesting/EventType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ export enum EventType {
CastStopped = 'onCastStopped',
CastTimeUpdated = 'onCastTimeUpdated',
CastWaitingForDevice = 'onCastWaitingForDevice',
CueEnter = 'onCueEnter',
CueExit = 'onCueExit',
Destroy = 'onDestroy',
Event = 'onEvent',
FullscreenEnabled = 'onFullscreenEnabled',
Expand Down
Loading
Loading