expo-libvlc-player 7.1.3 → 7.1.5

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.
package/README.md CHANGED
@@ -16,7 +16,7 @@
16
16
  </p>
17
17
 
18
18
  <p align="center">
19
- <i>Screenshots taken from the <a href="example/App.tsx">Example App</a> on Android and iOS</i>
19
+ <i>Screenshots taken from the <a href="example">Example App</a> on Android and iOS</i>
20
20
  </p>
21
21
 
22
22
  ### Supported versions
@@ -109,7 +109,7 @@ import LibVlcPlayerModule from "expo-libvlc-player";
109
109
  LibVlcPlayerModule.isPictureInPictureSupported();
110
110
  ```
111
111
 
112
- See the [Example App](example/App.tsx) for additional usage.
112
+ _See the [Example App](example) for additional usage._
113
113
 
114
114
  ### Module methods
115
115
 
@@ -1,22 +1,22 @@
1
1
  import groovy.json.JsonSlurper
2
2
 
3
3
  plugins {
4
- id 'com.android.library'
5
- id 'expo-module-gradle-plugin'
4
+ id "com.android.library"
5
+ id "expo-module-gradle-plugin"
6
6
  }
7
7
 
8
8
  def pkg = new JsonSlurper().parse(file("$projectDir/../package.json"))
9
9
 
10
- group = 'expo.modules.libvlcplayer'
10
+ group = "expo.modules.libvlcplayer"
11
11
  version = pkg.version
12
12
 
13
13
  android {
14
- namespace 'expo.modules.libvlcplayer'
14
+ namespace "expo.modules.libvlcplayer"
15
15
 
16
16
  defaultConfig {
17
17
  versionCode 1
18
18
  versionName pkg.version
19
- consumerProguardFiles('proguard-rules.pro')
19
+ consumerProguardFiles("proguard-rules.pro")
20
20
  }
21
21
 
22
22
  lintOptions {
@@ -29,5 +29,5 @@ repositories {
29
29
  }
30
30
 
31
31
  dependencies {
32
- implementation 'org.videolan.android:libvlc-all:3.7.5'
32
+ implementation "org.videolan.android:libvlc-all:3.7.5"
33
33
  }
@@ -63,6 +63,7 @@ class LibVlcPlayerView(
63
63
 
64
64
  var firstPlay: Boolean = true
65
65
  private var shouldInit: Boolean = true
66
+ var shouldRepeat: Boolean = true
66
67
 
67
68
  val onBuffering by EventDispatcher()
68
69
  val onPlaying by EventDispatcher<Unit>()
@@ -183,6 +184,7 @@ class LibVlcPlayerView(
183
184
  mediaPlayer = MediaPlayer(libVLC!!)
184
185
  attachPlayerLayout(playerLayout)
185
186
  setPlayerListener(mediaPlayer!!)
187
+ addPlayerSlaves(slaves)
186
188
  setupPlayer()
187
189
 
188
190
  try {
@@ -328,8 +330,6 @@ class LibVlcPlayerView(
328
330
  fun setupPlayer() {
329
331
  post {
330
332
  mediaPlayer?.let { player ->
331
- addPlayerSlaves(slaves)
332
-
333
333
  if (scale != MediaPlayerConstants.DEFAULT_PLAYER_SCALE) {
334
334
  player.setScale(scale.toFloat())
335
335
  }
@@ -467,16 +467,16 @@ class LibVlcPlayerView(
467
467
  var volume: Int = MediaPlayerConstants.MAX_PLAYER_VOLUME
468
468
  set(value) {
469
469
  val oldValue = field
470
- field = value
471
-
472
- if (mute) return
473
-
474
470
  val newVolume =
475
471
  value.coerceIn(
476
472
  MediaPlayerConstants.MIN_PLAYER_VOLUME,
477
473
  MediaPlayerConstants.MAX_PLAYER_VOLUME,
478
474
  )
479
475
 
476
+ field = newVolume
477
+
478
+ if (mute) return
479
+
480
480
  mediaPlayer?.setVolume(newVolume)
481
481
 
482
482
  val hadVolume = oldValue > MediaPlayerConstants.MIN_PLAYER_VOLUME
@@ -558,6 +558,7 @@ class LibVlcPlayerView(
558
558
  }
559
559
 
560
560
  fun stop() {
561
+ shouldRepeat = false
561
562
  mediaPlayer?.stop()
562
563
  }
563
564
 
@@ -712,6 +713,8 @@ fun LibVlcPlayerView.setPlayerListener(mediaPlayer: MediaPlayer?) {
712
713
  onPlaying(Unit)
713
714
 
714
715
  if (firstPlay) {
716
+ setupPlayer()
717
+
715
718
  setPlayerTracks()
716
719
 
717
720
  retryUntil { isLastAttempt ->
@@ -754,9 +757,11 @@ fun LibVlcPlayerView.setPlayerListener(mediaPlayer: MediaPlayer?) {
754
757
 
755
758
  firstPlay = true
756
759
 
757
- if (repeat) {
760
+ if (repeat && shouldRepeat) {
758
761
  player.play()
759
762
  }
763
+
764
+ shouldRepeat = true
760
765
  }
761
766
 
762
767
  MediaPlayerManager.keepAwakeManager.toggleKeepAwake()
@@ -862,7 +867,7 @@ private fun MutableList<String>.normalizeOptions() {
862
867
  val normalized =
863
868
  map { option ->
864
869
  if (!option.startsWith(":")) {
865
- ":" + option.dropWhile { character -> character == '-' }
870
+ ":" + option.dropWhile { character -> character == "-" }
866
871
  } else {
867
872
  option
868
873
  }
@@ -1,29 +1,29 @@
1
- require 'json'
1
+ require "json"
2
2
 
3
- package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
3
+ package = JSON.parse(File.read(File.join(__dir__, "..", "package.json")))
4
4
 
5
5
  Pod::Spec.new do |s|
6
- s.name = 'ExpoLibVlcPlayer'
7
- s.version = package['version']
8
- s.summary = package['description']
9
- s.description = package['description']
10
- s.license = package['license']
11
- s.author = package['author']
12
- s.homepage = package['homepage']
6
+ s.name = "ExpoLibVlcPlayer"
7
+ s.version = package["version"]
8
+ s.summary = package["description"]
9
+ s.description = package["description"]
10
+ s.license = package["license"]
11
+ s.author = package["author"]
12
+ s.homepage = package["homepage"]
13
13
  s.platforms = {
14
- :ios => '15.1',
15
- :tvos => '15.1',
14
+ :ios => "15.1",
15
+ :tvos => "15.1",
16
16
  }
17
- s.swift_version = '5.9'
18
- s.source = { git: 'https://github.com/cornejobarraza/expo-libvlc-player' }
17
+ s.swift_version = "5.9"
18
+ s.source = { git: "https://github.com/cornejobarraza/expo-libvlc-player" }
19
19
  s.static_framework = true
20
20
 
21
- s.dependency 'ExpoModulesCore'
22
- s.dependency 'VLCKit', '4.0.0a20'
21
+ s.dependency "ExpoModulesCore"
22
+ s.dependency "VLCKit", "4.0.0a20"
23
23
 
24
24
  # Swift/Objective-C compatibility
25
25
  s.pod_target_xcconfig = {
26
- 'DEFINES_MODULE' => 'YES',
26
+ "DEFINES_MODULE" => "YES",
27
27
  }
28
28
 
29
29
  s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
@@ -91,8 +91,8 @@ public class LibVlcPlayerModule: Module {
91
91
  view.audioMixingMode = audioMixingMode
92
92
  }
93
93
 
94
- Prop("repeat", false) { (view: LibVlcPlayerView, shouldRepeat: Bool) in
95
- view.shouldRepeat = shouldRepeat
94
+ Prop("repeat", false) { (view: LibVlcPlayerView, Repeat: Bool) in
95
+ view.Repeat = Repeat
96
96
  }
97
97
 
98
98
  Prop("autoplay", true) { (view: LibVlcPlayerView, autoplay: Bool) in
@@ -17,6 +17,7 @@ class LibVlcPlayerView: ExpoView {
17
17
 
18
18
  var firstPlay: Bool = true
19
19
  private var shouldInit: Bool = true
20
+ private var shouldRepeat: Bool = true
20
21
 
21
22
  let onBuffering = EventDispatcher()
22
23
  let onPlaying = EventDispatcher()
@@ -80,6 +81,7 @@ class LibVlcPlayerView: ExpoView {
80
81
  mediaPlayer = VLCMediaPlayer(library: library!)
81
82
  mediaPlayer!.drawable = drawable
82
83
  mediaPlayer!.delegate = self
84
+ addPlayerSlaves(slaves)
83
85
  setupPlayer()
84
86
 
85
87
  vlcDialog = VLCDialogProvider(library: library!, customUI: dialogCustomUI)
@@ -202,8 +204,6 @@ class LibVlcPlayerView: ExpoView {
202
204
  guard let self else { return }
203
205
 
204
206
  if let player = mediaPlayer {
205
- addPlayerSlaves(slaves)
206
-
207
207
  if scale != MediaPlayerConstants.defaultPlayerScale {
208
208
  player.scaleFactor = Float(scale)
209
209
  }
@@ -357,15 +357,21 @@ class LibVlcPlayerView: ExpoView {
357
357
 
358
358
  var time: Int = MediaPlayerConstants.defaultPlayerTime
359
359
 
360
- var volume: Int = MediaPlayerConstants.maxPlayerVolume {
361
- didSet {
362
- if mute { return }
360
+ var _volume: Int = MediaPlayerConstants.maxPlayerVolume
363
361
 
362
+ var volume: Int {
363
+ get { _volume }
364
+ set {
365
+ let oldValue = _volume
364
366
  let newVolume = max(
365
367
  MediaPlayerConstants.minPlayerVolume,
366
- min(MediaPlayerConstants.maxPlayerVolume, volume)
368
+ min(MediaPlayerConstants.maxPlayerVolume, newValue)
367
369
  )
368
370
 
371
+ _volume = newVolume
372
+
373
+ if mute { return }
374
+
369
375
  mediaPlayer?.audio?.volume = Int32(newVolume)
370
376
 
371
377
  let hadVolume = oldValue > MediaPlayerConstants.minPlayerVolume
@@ -398,7 +404,7 @@ class LibVlcPlayerView: ExpoView {
398
404
  }
399
405
  }
400
406
 
401
- var shouldRepeat: Bool = false
407
+ var Repeat: Bool = false
402
408
 
403
409
  var autoplay: Bool = true
404
410
 
@@ -428,6 +434,7 @@ class LibVlcPlayerView: ExpoView {
428
434
  }
429
435
 
430
436
  func stop() {
437
+ shouldRepeat = false
431
438
  mediaPlayer?.stop()
432
439
  }
433
440
 
@@ -547,6 +554,8 @@ extension LibVlcPlayerView: VLCMediaPlayerDelegate {
547
554
  onPlaying()
548
555
 
549
556
  if firstPlay {
557
+ setupPlayer()
558
+
550
559
  setPlayerTracks()
551
560
 
552
561
  retryUntil { [weak self] isLastAttempt in
@@ -593,9 +602,11 @@ extension LibVlcPlayerView: VLCMediaPlayerDelegate {
593
602
 
594
603
  firstPlay = true
595
604
 
596
- if shouldRepeat {
605
+ if Repeat, shouldRepeat {
597
606
  player.play()
598
607
  }
608
+
609
+ shouldRepeat = true
599
610
  }
600
611
 
601
612
  MediaPlayerManager.shared.keepAwakeManager.toggleKeepAwake()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-libvlc-player",
3
- "version": "7.1.3",
3
+ "version": "7.1.5",
4
4
  "description": "LibVLC Player for Expo",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",