diff --git a/CHANGELOG.md b/CHANGELOG.md index 9584aec8..e54d8d36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.37.0] + +### Fixed + +- Android: App crashes when `mediaControlConfig.isEnabled` is set to `false` and the player gets destroyed + ## [0.36.0] - 2024-12-20 ### Changed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 522090f2..b6743767 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -170,7 +170,7 @@ export default (spec: TestScope) => { spec.it('emits TimeChanged events', async () => { await startPlayerTest({}, async () => { await loadSourceConfig({ - url: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8', + url: 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8', type: SourceType.HLS, }); await callPlayerAndExpectEvents((player) => { diff --git a/android/src/main/java/com/bitmovin/player/reactnative/MediaSessionPlaybackManager.kt b/android/src/main/java/com/bitmovin/player/reactnative/MediaSessionPlaybackManager.kt index 15de7745..89833dab 100644 --- a/android/src/main/java/com/bitmovin/player/reactnative/MediaSessionPlaybackManager.kt +++ b/android/src/main/java/com/bitmovin/player/reactnative/MediaSessionPlaybackManager.kt @@ -12,7 +12,7 @@ import com.facebook.react.bridge.* class MediaSessionPlaybackManager(val context: ReactApplicationContext) { private var serviceBinder: MediaSessionPlaybackService.ServiceBinder? = null - private lateinit var playerId: NativeId + private var playerId: NativeId? = null val player: Player? get() = serviceBinder?.player @@ -24,7 +24,9 @@ class MediaSessionPlaybackManager(val context: ReactApplicationContext) { } override fun onServiceDisconnected(name: ComponentName) { - destroy(playerId) + playerId?.let { + destroy(it) + } } } @@ -38,13 +40,16 @@ class MediaSessionPlaybackManager(val context: ReactApplicationContext) { } fun destroy(nativeId: NativeId) { - if (nativeId != playerId) { return } + if (nativeId != playerId) { + return + } serviceBinder?.player = null serviceBinder = null } private fun getPlayer( - nativeId: NativeId = playerId, + nativeId: NativeId? = playerId, playerModule: PlayerModule? = context.playerModule, - ): Player = playerModule?.getPlayerOrNull(nativeId) ?: throw IllegalArgumentException("Invalid PlayerId $nativeId") + ): Player = nativeId?.let { playerModule?.getPlayerOrNull(nativeId) } + ?: throw IllegalArgumentException("Invalid PlayerId $nativeId") } diff --git a/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt b/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt index b4a45185..3da1813e 100644 --- a/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt +++ b/android/src/main/java/com/bitmovin/player/reactnative/PlayerModule.kt @@ -97,9 +97,7 @@ class PlayerModule(context: ReactApplicationContext) : BitmovinBaseModule(contex } if (enableMediaSession) { - promise.unit.resolveOnUiThread { - mediaSessionPlaybackManager.setupMediaSessionPlayback(nativeId) - } + mediaSessionPlaybackManager.setupMediaSessionPlayback(nativeId) } } diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 5c9b475c..eba0a327 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1048,7 +1048,7 @@ PODS: - React-jsi (= 0.73.4-0) - React-logger (= 0.73.4-0) - React-perflogger (= 0.73.4-0) - - RNBitmovinPlayer (0.36.0): + - RNBitmovinPlayer (0.37.0): - BitmovinPlayer (= 3.81.0) - GoogleAds-IMA-iOS-SDK (= 3.23.0) - GoogleAds-IMA-tvOS-SDK (= 4.13.0) @@ -1301,7 +1301,7 @@ SPEC CHECKSUMS: React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8 React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74 ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2 - RNBitmovinPlayer: de83af231ba2a21f957c88ccdabc3541f73f81b3 + RNBitmovinPlayer: 7a9b1b5e67cb39c9c2a35549ec5616e519a30291 RNCPicker: b18aaf30df596e9b1738e7c1f9ee55402a229dca RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 diff --git a/example/src/screens/BackgroundPlayback.tsx b/example/src/screens/BackgroundPlayback.tsx index ba5a30ba..8f2f3cf6 100644 --- a/example/src/screens/BackgroundPlayback.tsx +++ b/example/src/screens/BackgroundPlayback.tsx @@ -33,12 +33,12 @@ export default function BackgroundPlayback() { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', thumbnailTrack: 'https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt', metadata: { platform: Platform.OS }, diff --git a/example/src/screens/BasicAds.tsx b/example/src/screens/BasicAds.tsx index 53a96a0f..d885a163 100644 --- a/example/src/screens/BasicAds.tsx +++ b/example/src/screens/BasicAds.tsx @@ -73,12 +73,12 @@ export default function BasicAds() { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', }); return () => { player.destroy(); diff --git a/example/src/screens/BasicAnalytics.tsx b/example/src/screens/BasicAnalytics.tsx index 21d4cd98..ee20ef89 100644 --- a/example/src/screens/BasicAnalytics.tsx +++ b/example/src/screens/BasicAnalytics.tsx @@ -37,12 +37,12 @@ export default function BasicAnalytics() { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', analyticsSourceMetadata: { videoId: 'MyVideoId', title: 'Art of Motion', diff --git a/example/src/screens/BasicDrmPlayback.tsx b/example/src/screens/BasicDrmPlayback.tsx index c441d386..3e6c3894 100644 --- a/example/src/screens/BasicDrmPlayback.tsx +++ b/example/src/screens/BasicDrmPlayback.tsx @@ -18,7 +18,7 @@ const source: SourceConfig = { url: Platform.OS === 'ios' ? 'https://fps.ezdrm.com/demo/video/ezdrm.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd', + : 'https://cdn.bitmovin.com/content/assets/art-of-motion_drm/mpds/11331.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, drmConfig: { // Android only. diff --git a/example/src/screens/BasicFullscreenHandling.tsx b/example/src/screens/BasicFullscreenHandling.tsx index dd5bb206..5edb6d6f 100644 --- a/example/src/screens/BasicFullscreenHandling.tsx +++ b/example/src/screens/BasicFullscreenHandling.tsx @@ -101,12 +101,12 @@ export default function BasicFullscreenHandling({ player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', }); return () => { player.destroy(); diff --git a/example/src/screens/BasicPictureInPicture.tsx b/example/src/screens/BasicPictureInPicture.tsx index 72422982..d714529f 100644 --- a/example/src/screens/BasicPictureInPicture.tsx +++ b/example/src/screens/BasicPictureInPicture.tsx @@ -54,12 +54,12 @@ export default function BasicPictureInPicture({ player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', }); return () => { player.destroy(); diff --git a/example/src/screens/BasicPlayback.tsx b/example/src/screens/BasicPlayback.tsx index 027bad63..6830608f 100644 --- a/example/src/screens/BasicPlayback.tsx +++ b/example/src/screens/BasicPlayback.tsx @@ -27,12 +27,12 @@ export default function BasicPlayback() { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', thumbnailTrack: 'https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt', metadata: { platform: Platform.OS }, diff --git a/example/src/screens/BasicTvPlayback.tsx b/example/src/screens/BasicTvPlayback.tsx index c1c252f8..dde28f40 100644 --- a/example/src/screens/BasicTvPlayback.tsx +++ b/example/src/screens/BasicTvPlayback.tsx @@ -36,12 +36,12 @@ export default function BasicTvPlayback() { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', thumbnailTrack: 'https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt', metadata: { platform: Platform.OS }, diff --git a/example/src/screens/Casting.tsx b/example/src/screens/Casting.tsx index 7846181c..e5372feb 100644 --- a/example/src/screens/Casting.tsx +++ b/example/src/screens/Casting.tsx @@ -29,12 +29,12 @@ export default function Casting() { const source = new Source({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', thumbnailTrack: 'https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt', metadata: { platform: Platform.OS }, @@ -43,7 +43,7 @@ export default function Casting() { // Configure playing DASH source on Chromecast, even when casting from iOS. source.remoteControl = { castSourceConfig: { - url: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + url: 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: SourceType.DASH, title: 'Art of Motion', }, diff --git a/example/src/screens/CustomHtmlUi.tsx b/example/src/screens/CustomHtmlUi.tsx index ee948312..1857fe4f 100644 --- a/example/src/screens/CustomHtmlUi.tsx +++ b/example/src/screens/CustomHtmlUi.tsx @@ -65,12 +65,12 @@ export default function CustomHtmlUi({ navigation }: CustomHtmlUiProps) { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', }); return () => { player.destroy(); diff --git a/example/src/screens/LandscapeFullscreenHandling.tsx b/example/src/screens/LandscapeFullscreenHandling.tsx index ef3272bd..44c5df70 100644 --- a/example/src/screens/LandscapeFullscreenHandling.tsx +++ b/example/src/screens/LandscapeFullscreenHandling.tsx @@ -108,12 +108,12 @@ export default function LandscapeFullscreenHandling({ player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + ? 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8' + : 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, title: 'Art of Motion', poster: - 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/poster.jpg', + 'https://cdn.bitmovin.com/content/assets/MI201109210084/poster.jpg', }); return () => { player.destroy(); diff --git a/example/src/screens/OfflinePlayback.tsx b/example/src/screens/OfflinePlayback.tsx index 3a4ba235..e1f72900 100644 --- a/example/src/screens/OfflinePlayback.tsx +++ b/example/src/screens/OfflinePlayback.tsx @@ -48,10 +48,10 @@ const initialDownloadRequest: OfflineDownloadRequest = { const STABLE_CONTENT_IDENTIFIER = 'sintel-content-id'; const sourceConfig: SourceConfig = { - url: 'https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8', + url: 'https://cdn.bitmovin.com/content/assets/sintel/hls/playlist.m3u8', type: SourceType.HLS, title: 'Sintel', - poster: 'https://bitmovin-a.akamaihd.net/content/sintel/poster.png', + poster: 'https://cdn.bitmovin.com/content/assets/sintel/poster.png', }; export default function OfflinePlayback() { diff --git a/example/src/screens/ProgrammaticTrackSelection.tsx b/example/src/screens/ProgrammaticTrackSelection.tsx index a6053112..f98cfd36 100644 --- a/example/src/screens/ProgrammaticTrackSelection.tsx +++ b/example/src/screens/ProgrammaticTrackSelection.tsx @@ -46,10 +46,10 @@ export default function ProgrammaticTrackSelection() { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd', + ? 'https://cdn.bitmovin.com/content/assets/sintel/hls/playlist.m3u8' + : 'https://cdn.bitmovin.com/content/assets/sintel/sintel.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, - poster: 'https://bitmovin-a.akamaihd.net/content/sintel/poster.png', + poster: 'https://cdn.bitmovin.com/content/assets/sintel/poster.png', }); return () => { player.destroy(); diff --git a/example/src/screens/SubtitlePlayback.tsx b/example/src/screens/SubtitlePlayback.tsx index 54703c32..0318a49c 100644 --- a/example/src/screens/SubtitlePlayback.tsx +++ b/example/src/screens/SubtitlePlayback.tsx @@ -28,22 +28,22 @@ export default function SubtitlePlayback() { player.load({ url: Platform.OS === 'ios' - ? 'https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8' - : 'https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd', + ? 'https://cdn.bitmovin.com/content/assets/sintel/hls/playlist.m3u8' + : 'https://cdn.bitmovin.com/content/assets/sintel/sintel.mpd', type: Platform.OS === 'ios' ? SourceType.HLS : SourceType.DASH, - poster: 'https://bitmovin-a.akamaihd.net/content/sintel/poster.png', + poster: 'https://cdn.bitmovin.com/content/assets/sintel/poster.png', // External subtitle tracks to be added to the source. subtitleTracks: [ // Add custom english subtitles. You can select 'Custom English (WebVTT)' in the subtitles menu. { - url: 'https://bitdash-a.akamaihd.net/content/sintel/subtitles/subtitles_en.vtt', + url: 'https://cdn.bitmovin.com/content/assets/sintel/subtitles/subtitles_en.vtt', label: 'Custom English (WebVTT)', language: 'en', format: SubtitleFormat.VTT, }, // Add custom english subtitles. You can select 'Custom English (SRT)' in the subtitles menu. { - url: 'https://bitdash-a.akamaihd.net/content/sintel/subtitles/subtitles_en.srt', + url: 'https://cdn.bitmovin.com/content/assets/sintel/subtitles/subtitles_en.srt', label: 'Custom English (SRT)', language: 'en', format: SubtitleFormat.SRT, diff --git a/example/src/screens/SystemUi.tsx b/example/src/screens/SystemUi.tsx index a3f79cfb..6ce804ee 100644 --- a/example/src/screens/SystemUi.tsx +++ b/example/src/screens/SystemUi.tsx @@ -30,7 +30,7 @@ export default function SystemUI() { useFocusEffect( useCallback(() => { player.load({ - url: 'https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8', + url: 'https://cdn.bitmovin.com/content/assets/sintel/hls/playlist.m3u8', type: SourceType.HLS, title: 'Sintel', }); diff --git a/integration_test/ios/Podfile.lock b/integration_test/ios/Podfile.lock index 0e57fc33..c1a298b8 100644 --- a/integration_test/ios/Podfile.lock +++ b/integration_test/ios/Podfile.lock @@ -1040,7 +1040,7 @@ PODS: - React-jsi (= 0.73.4-0) - React-logger (= 0.73.4-0) - React-perflogger (= 0.73.4-0) - - RNBitmovinPlayer (0.36.0): + - RNBitmovinPlayer (0.37.0): - BitmovinPlayer (= 3.81.0) - GoogleAds-IMA-iOS-SDK (= 3.23.0) - GoogleAds-IMA-tvOS-SDK (= 4.13.0) @@ -1266,7 +1266,7 @@ SPEC CHECKSUMS: React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8 React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74 ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2 - RNBitmovinPlayer: de83af231ba2a21f957c88ccdabc3541f73f81b3 + RNBitmovinPlayer: 7a9b1b5e67cb39c9c2a35549ec5616e519a30291 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 Yoga: ab50eb8f7fcf1b36aad1801b5687b66b2c0aa000 diff --git a/integration_test/playertesting/PlayerTesting.ts b/integration_test/playertesting/PlayerTesting.ts index c20cce83..c7a12755 100644 --- a/integration_test/playertesting/PlayerTesting.ts +++ b/integration_test/playertesting/PlayerTesting.ts @@ -183,7 +183,7 @@ export const callPlayerAndExpectEvents = async ( * @example * ```typescript * await loadSourceConfig({ - * url: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8', + * url: 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8', * type: SourceType.HLS, * }); * ``` diff --git a/integration_test/tests/helper/Ads.ts b/integration_test/tests/helper/Ads.ts index 1cbe3dbd..1f3bf775 100644 --- a/integration_test/tests/helper/Ads.ts +++ b/integration_test/tests/helper/Ads.ts @@ -15,6 +15,6 @@ export const AdTags = { 'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpremidpost&cmsid=496&vid=short_onecue&correlator=' ), progressive: - 'https://bitmovin-a.akamaihd.net/content/testing/ads/testad2s.mp4', + 'https://cdn.bitmovin.com/content/assets/testing/ads/testad2s.mp4', error: withCorrelator('https://mock.codes/404?correlator='), }; diff --git a/integration_test/tests/helper/Sources.ts b/integration_test/tests/helper/Sources.ts index 523d1620..1f68ff11 100644 --- a/integration_test/tests/helper/Sources.ts +++ b/integration_test/tests/helper/Sources.ts @@ -2,12 +2,12 @@ import { SourceConfig, SourceType } from 'bitmovin-player-react-native'; export const Sources = { artOfMotionHls: { - url: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8', + url: 'https://cdn.bitmovin.com/content/assets/MI201109210084/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8', type: SourceType.HLS, } as SourceConfig, artOfMotionDash: { - url: 'https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', + url: 'https://cdn.bitmovin.com/content/assets/MI201109210084/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd', type: SourceType.DASH, } as SourceConfig, @@ -17,7 +17,7 @@ export const Sources = { } as SourceConfig, sintel: { - url: 'https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8', + url: 'https://cdn.bitmovin.com/content/assets/sintel/hls/playlist.m3u8', type: SourceType.HLS, } as SourceConfig, }; diff --git a/package.json b/package.json index 2995ac76..0439fc44 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bitmovin-player-react-native", - "version": "0.36.0", + "version": "0.37.0", "description": "Official React Native bindings for Bitmovin's mobile Player SDKs.", "main": "lib/index.js", "module": "lib/index.mjs",