@capgo/capacitor-jw-player 0.0.22 → 0.0.24

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.
@@ -16,7 +16,7 @@ protocol CallbackHandler {
16
16
 
17
17
  @objc(JwPlayerPlugin)
18
18
  public class JwPlayerPlugin: CAPPlugin, CAPBridgedPlugin {
19
- // public class JwPlayerPlugin: CAPPlugin, CAPBridgedPlugin, GCKLoggerDelegate {
19
+ // public class JwPlayerPlugin: CAPPlugin, CAPBridgedPlugin, GCKLoggerDelegate {
20
20
  public let identifier = "JwPlayerPlugin"
21
21
  public let jsName = "JwPlayer"
22
22
  public let pluginMethods: [CAPPluginMethod] = [
@@ -138,25 +138,25 @@ public class JwPlayerPlugin: CAPPlugin, CAPBridgedPlugin {
138
138
  var config: JWPlayerConfiguration?
139
139
  do {
140
140
  switch mediaType {
141
- case "video":
142
- print("[JWPlayer] Creating video configuration")
143
- let item = try JWPlayerItemBuilder()
144
- .file(mediaUrl)
145
- .build()
146
- config = try JWPlayerConfigurationBuilder()
147
- .playlist(items: [item])
148
- .autostart(autostart)
149
- .build()
150
- case "playlist":
151
- print("[JWPlayer] Creating playlist configuration")
152
- config = try JWPlayerConfigurationBuilder()
153
- .playlist(url: mediaUrl)
154
- .autostart(autostart)
155
- .build()
156
- default:
157
- print("[JWPlayer] Error: Invalid mediaType: \(mediaType)")
158
- call.reject("Invalid mediaType. Must be either video or playlist")
159
- return
141
+ case "video":
142
+ print("[JWPlayer] Creating video configuration")
143
+ let item = try JWPlayerItemBuilder()
144
+ .file(mediaUrl)
145
+ .build()
146
+ config = try JWPlayerConfigurationBuilder()
147
+ .playlist(items: [item])
148
+ .autostart(autostart)
149
+ .build()
150
+ case "playlist":
151
+ print("[JWPlayer] Creating playlist configuration")
152
+ config = try JWPlayerConfigurationBuilder()
153
+ .playlist(url: mediaUrl)
154
+ .autostart(autostart)
155
+ .build()
156
+ default:
157
+ print("[JWPlayer] Error: Invalid mediaType: \(mediaType)")
158
+ call.reject("Invalid mediaType. Must be either video or playlist")
159
+ return
160
160
  }
161
161
  } catch {
162
162
  print("[JWPlayer] Error creating configuration: \(error.localizedDescription)")
@@ -529,9 +529,9 @@ extension JwPlayerPlugin: CallbackHandler {
529
529
  self.viewController = nil
530
530
  self.notifyListeners("playerDismissed", data: nil)
531
531
  } else {
532
- print("[JWPlayer] PiP dismissal detected, keeping VC reference for potential restore.")
533
- // Optionally notify JS that PiP started if needed
534
- self.notifyListeners("pipStarted", data: nil)
532
+ print("[JWPlayer] PiP dismissal detected, keeping VC reference for potential restore.")
533
+ // Optionally notify JS that PiP started if needed
534
+ self.notifyListeners("pipStarted", data: nil)
535
535
  }
536
536
  }
537
537
 
@@ -548,9 +548,9 @@ extension JwPlayerPlugin: CallbackHandler {
548
548
 
549
549
  // Ensure it's not already being presented or presenting something else
550
550
  if vc.isBeingPresented || vc.presentingViewController != nil || bridgeVC.presentedViewController != nil {
551
- print("[JWPlayer] Warning: Cannot re-present, presentation context busy.")
552
- return
553
- }
551
+ print("[JWPlayer] Warning: Cannot re-present, presentation context busy.")
552
+ return
553
+ }
554
554
 
555
555
  DispatchQueue.main.async {
556
556
  print("[JWPlayer] Re-presenting player view controller")
@@ -643,7 +643,7 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
643
643
  print("[JWPlayer] Configuring player from init config")
644
644
  player.configurePlayer(with: config)
645
645
  print("[JWPlayer] Player configured successfully from init config")
646
-
646
+
647
647
  // JWPlayerViewController already has self as delegates
648
648
  // We are just implementing the delegate methods
649
649
  } else {
@@ -653,34 +653,34 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
653
653
 
654
654
  // Add the custom close button
655
655
  setupCloseButton()
656
-
656
+
657
657
  // Start time update timer after player is ready
658
658
  startTimeUpdateTimer()
659
659
  }
660
-
660
+
661
661
  // Start a timer to emit time updates periodically
662
662
  private func startTimeUpdateTimer() {
663
663
  // Cancel any existing timer
664
664
  timeUpdateTimer?.invalidate()
665
-
665
+
666
666
  // Create a new timer that fires every second
667
667
  timeUpdateTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
668
668
  guard let self = self else { return }
669
-
669
+
670
670
  if self.player.getState() == .playing {
671
671
  let position = self.player.time.position
672
672
  let duration = self.player.time.duration
673
-
673
+
674
674
  let timeData: [String: Any] = [
675
675
  "position": position,
676
676
  "duration": duration
677
677
  ]
678
-
678
+
679
679
  self.callbackHandler?.notifyEventListener("time", data: timeData)
680
680
  }
681
681
  }
682
682
  }
683
-
683
+
684
684
  // Stop the time update timer
685
685
  private func stopTimeUpdateTimer() {
686
686
  timeUpdateTimer?.invalidate()
@@ -695,7 +695,7 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
695
695
 
696
696
  override func viewWillDisappear(_ animated: Bool) {
697
697
  super.viewWillDisappear(animated)
698
-
698
+
699
699
  // Stop the time update timer when view disappears
700
700
  stopTimeUpdateTimer()
701
701
 
@@ -742,19 +742,19 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
742
742
  @objc private func closeButtonTapped() {
743
743
  print("[JWPlayer] Custom close button tapped - dismissing player manually")
744
744
  self.dismiss(animated: true) { [weak self] in
745
- // Use the new callback signature
746
- self?.callbackHandler?.onPlayerDismissed(isPiPDismissal: false)
745
+ // Use the new callback signature
746
+ self?.callbackHandler?.onPlayerDismissed(isPiPDismissal: false)
747
747
  }
748
748
  }
749
749
 
750
750
  // MARK: - JWPlayerDelegate Methods
751
-
751
+
752
752
  override func jwplayerIsReady(_ player: JWPlayer) {
753
753
  super.jwplayerIsReady(player)
754
754
  print("[JWPlayer] Player is ready")
755
755
  callbackHandler?.notifyEventListener("ready", data: nil)
756
756
  }
757
-
757
+
758
758
  override func jwplayer(_ player: JWPlayer, failedWithError code: UInt, message: String) {
759
759
  super.jwplayer(player, failedWithError: code, message: message)
760
760
  print("[JWPlayer] Error: \(message), code: \(code)")
@@ -764,7 +764,7 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
764
764
  ]
765
765
  callbackHandler?.notifyEventListener("error", data: errorData)
766
766
  }
767
-
767
+
768
768
  override func jwplayer(_ player: JWPlayer, failedWithSetupError code: UInt, message: String) {
769
769
  super.jwplayer(player, failedWithSetupError: code, message: message)
770
770
  print("[JWPlayer] Setup error: \(message), code: \(code)")
@@ -774,27 +774,27 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
774
774
  ]
775
775
  callbackHandler?.notifyEventListener("error", data: errorData)
776
776
  }
777
-
777
+
778
778
  // MARK: - JWPlayerStateDelegate Methods
779
-
779
+
780
780
  override func jwplayer(_ player: JWPlayer, isPlayingWithReason reason: JWPlayReason) {
781
781
  super.jwplayer(player, isPlayingWithReason: reason)
782
782
  print("[JWPlayer] Playing with reason: \(reason)")
783
783
  callbackHandler?.notifyEventListener("play", data: ["reason": reason.rawValue])
784
784
  }
785
-
785
+
786
786
  override func jwplayer(_ player: JWPlayer, didPauseWithReason reason: JWPauseReason) {
787
787
  super.jwplayer(player, didPauseWithReason: reason)
788
788
  print("[JWPlayer] Paused with reason: \(reason)")
789
789
  callbackHandler?.notifyEventListener("pause", data: ["reason": reason.rawValue])
790
790
  }
791
-
791
+
792
792
  override func jwplayerContentDidComplete(_ player: JWPlayer) {
793
793
  super.jwplayerContentDidComplete(player)
794
794
  print("[JWPlayer] Content completed")
795
795
  callbackHandler?.notifyEventListener("complete", data: nil)
796
796
  }
797
-
797
+
798
798
  override func jwplayer(_ player: JWPlayer, seekedFrom position: TimeInterval, to offset: TimeInterval) {
799
799
  super.jwplayer(player, seekedFrom: position, to: offset)
800
800
  print("[JWPlayer] Seeked from \(position) to \(offset)")
@@ -804,26 +804,26 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
804
804
  ]
805
805
  callbackHandler?.notifyEventListener("seek", data: seekData)
806
806
  }
807
-
807
+
808
808
  override func jwplayerHasSeeked(_ player: JWPlayer) {
809
809
  super.jwplayerHasSeeked(player)
810
810
  print("[JWPlayer] Seeked")
811
811
  callbackHandler?.notifyEventListener("seeked", data: nil)
812
812
  }
813
-
813
+
814
814
  override func jwplayer(_ player: JWPlayer, didLoadPlaylistItem item: JWPlayerItem, at index: UInt) {
815
815
  super.jwplayer(player, didLoadPlaylistItem: item, at: index)
816
816
  print("[JWPlayer] Playlist item loaded at index: \(index)")
817
817
  var itemData: [String: Any] = ["index": index]
818
-
818
+
819
819
  // Add title if available
820
820
  if let title = item.title, !title.isEmpty {
821
821
  itemData["title"] = title
822
822
  }
823
-
823
+
824
824
  callbackHandler?.notifyEventListener("playlistItem", data: itemData)
825
825
  }
826
-
826
+
827
827
  override func jwplayerPlaylistHasCompleted(_ player: JWPlayer) {
828
828
  super.jwplayerPlaylistHasCompleted(player)
829
829
  print("[JWPlayer] Playlist completed")
@@ -840,7 +840,7 @@ class CustomPlayerViewController: JWPlayerViewController, JWPlayerViewController
840
840
  // Ensure closeButton is not nil before accessing
841
841
  guard let button = self.closeButton else { return }
842
842
  button.alpha = targetAlpha
843
-
843
+
844
844
  // Emit controlsChanged event to match other platforms
845
845
  callbackHandler?.notifyEventListener("controlsChanged", data: ["visible": isVisible])
846
846
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/capacitor-jw-player",
3
- "version": "0.0.22",
3
+ "version": "0.0.24",
4
4
  "description": "Playes videos from jwplayer.com",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",