expo-libvlc-player 7.0.39 → 7.0.40

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.
@@ -359,42 +359,21 @@ class LibVlcPlayerView(
359
359
  }
360
360
 
361
361
  fun getMediaTracks(): MediaTracks {
362
- var mediaTracks = MediaTracks()
362
+ val player = mediaPlayer ?: return MediaTracks()
363
363
 
364
- mediaPlayer?.let { player ->
365
- val audioTracks = mutableListOf<Track>()
366
- val audios = player.getAudioTracks()
367
-
368
- audios?.forEach { track ->
369
- val trackObj = Track(id = track.id, name = track.name)
370
- audioTracks.add(trackObj)
371
- }
372
-
373
- val videoTracks = mutableListOf<Track>()
374
- val videos = player.getVideoTracks()
375
-
376
- videos?.forEach { track ->
377
- val trackObj = Track(id = track.id, name = track.name)
378
- videoTracks.add(trackObj)
379
- }
364
+ val audios = player.getAudioTracks()?.map { track -> Track(id = track.id, name = track.name) }
365
+ val videos = player.getVideoTracks()?.map { track -> Track(id = track.id, name = track.name) }
366
+ val subtitles = player.getSpuTracks()?.map { track -> Track(id = track.id, name = track.name) }
380
367
 
381
- val subtitleTracks = mutableListOf<Track>()
382
- val subtitles = player.getSpuTracks()
368
+ val audio = audios ?: emptyList()
369
+ val video = videos ?: emptyList()
370
+ val subtitle = subtitles ?: emptyList()
383
371
 
384
- subtitles?.forEach { track ->
385
- val trackObj = Track(id = track.id, name = track.name)
386
- subtitleTracks.add(trackObj)
387
- }
388
-
389
- mediaTracks =
390
- MediaTracks(
391
- audio = audioTracks,
392
- video = videoTracks,
393
- subtitle = subtitleTracks,
394
- )
395
- }
396
-
397
- return mediaTracks
372
+ return MediaTracks(
373
+ audio = audio,
374
+ video = video,
375
+ subtitle = subtitle,
376
+ )
398
377
  }
399
378
 
400
379
  fun getMediaLength(): Int = (mediaPlayer?.getLength() ?: 0).toInt()
@@ -413,9 +392,8 @@ class LibVlcPlayerView(
413
392
  }
414
393
 
415
394
  fun getVideoSize(): Size {
416
- val video = mediaPlayer?.getCurrentVideoTrack()
417
- if (video != null) return Size(video.width, video.height)
418
- return Size(0, 0)
395
+ val video = mediaPlayer?.getCurrentVideoTrack() ?: return Size(0, 0)
396
+ return Size(video.width, video.height)
419
397
  }
420
398
 
421
399
  val hasVideoSize: Boolean
@@ -424,20 +402,16 @@ class LibVlcPlayerView(
424
402
  return video.width > 0 && video.height > 0
425
403
  }
426
404
 
427
- val hasVideoOut: Boolean
405
+ val hasMediaLength: Boolean
428
406
  get() {
429
- val tracks = getMediaTracks()
430
407
  val length = getMediaLength()
431
- val hasVideo = tracks.video.any { track -> track.id != -1 }
432
- return hasVideo && hasVideoSize && length > 0
408
+ return length > 0
433
409
  }
434
410
 
435
- val hasAudioOut: Boolean
411
+ val hasMediaVolume: Boolean
436
412
  get() {
437
- val tracks = getMediaTracks()
438
- val hasAudio = tracks.audio.any { track -> track.id != -1 }
439
413
  val volume = mediaPlayer?.getVolume() ?: MediaPlayerConstants.MIN_PLAYER_VOLUME
440
- return hasAudio && volume > MediaPlayerConstants.MIN_PLAYER_VOLUME
414
+ return volume > MediaPlayerConstants.MIN_PLAYER_VOLUME
441
415
  }
442
416
 
443
417
  var source: String? = null
@@ -741,11 +715,11 @@ fun LibVlcPlayerView.setPlayerListener(mediaPlayer: MediaPlayer?) {
741
715
  setPlayerTracks()
742
716
 
743
717
  retryUntil { isLastAttempt ->
744
- if (hasVideoOut || isLastAttempt) {
718
+ if (hasMediaLength || isLastAttempt) {
745
719
  onFirstPlay(getMediaInfo())
746
720
  }
747
721
 
748
- return@retryUntil hasVideoOut
722
+ return@retryUntil hasMediaLength
749
723
  }
750
724
 
751
725
  retryUntil {
@@ -758,11 +732,11 @@ fun LibVlcPlayerView.setPlayerListener(mediaPlayer: MediaPlayer?) {
758
732
  }
759
733
 
760
734
  retryUntil {
761
- if (hasAudioOut) {
735
+ if (hasMediaVolume) {
762
736
  MediaPlayerManager.audioFocusManager.updateAudioFocus()
763
737
  }
764
738
 
765
- return@retryUntil hasAudioOut
739
+ return@retryUntil hasMediaVolume
766
740
  }
767
741
 
768
742
  firstPlay = false
@@ -6,8 +6,8 @@ import expo.modules.libvlcplayer.records.Track
6
6
  import java.io.Serializable
7
7
 
8
8
  class MediaTracks(
9
- @Field var audio: MutableList<Track> = mutableListOf(),
10
- @Field var video: MutableList<Track> = mutableListOf(),
11
- @Field var subtitle: MutableList<Track> = mutableListOf(),
9
+ @Field var audio: List<Track> = emptyList(),
10
+ @Field var video: List<Track> = emptyList(),
11
+ @Field var subtitle: List<Track> = emptyList(),
12
12
  ) : Record,
13
13
  Serializable
@@ -237,13 +237,15 @@ class LibVlcPlayerView: ExpoView {
237
237
  func getMediaTracks() -> MediaTracks {
238
238
  guard let player = mediaPlayer else { return MediaTracks() }
239
239
 
240
- let audioTracks = player.audioTracks.enumerated()
241
- let videoTracks = player.videoTracks.enumerated()
242
- let subtitleTracks = player.textTracks.enumerated()
240
+ let disableTrack = Track(id: -1, name: "Disable")
243
241
 
244
- let audio = audioTracks.map { index, audio in Track(id: index, name: audio.trackName) }
245
- let video = videoTracks.map { index, video in Track(id: index, name: video.trackName) }
246
- let subtitle = subtitleTracks.map { index, subtitle in Track(id: index, name: subtitle.trackName) }
242
+ let audios = player.audioTracks.enumerated()
243
+ let videos = player.videoTracks.enumerated()
244
+ let subtitles = player.textTracks.enumerated()
245
+
246
+ let audio = [disableTrack] + audios.map { index, audio in Track(id: index, name: audio.trackName) }
247
+ let video = [disableTrack] + videos.map { index, video in Track(id: index, name: video.trackName) }
248
+ let subtitle = [disableTrack] + subtitles.map { index, subtitle in Track(id: index, name: subtitle.trackName) }
247
249
 
248
250
  return MediaTracks(
249
251
  audio: audio,
@@ -270,8 +272,8 @@ class LibVlcPlayerView: ExpoView {
270
272
  }
271
273
 
272
274
  func getVideoSize() -> CGSize {
273
- if let size = mediaPlayer?.videoSize { return size }
274
- return CGSize(width: 0, height: 0)
275
+ guard let size = mediaPlayer?.videoSize else { return CGSize(width: 0, height: 0) }
276
+ return size
275
277
  }
276
278
 
277
279
  func resetVideoTrack() {
@@ -291,18 +293,14 @@ class LibVlcPlayerView: ExpoView {
291
293
  return video.width > 0 && video.height > 0
292
294
  }
293
295
 
294
- var hasVideoOut: Bool {
295
- let tracks = getMediaTracks()
296
+ var hasMediaLength: Bool {
296
297
  let length = getMediaLength()
297
- let hasVideo = tracks.video.count > 0
298
- return hasVideo && hasVideoSize && length > 0
298
+ return length > 0
299
299
  }
300
300
 
301
- var hasAudioOut: Bool {
302
- let tracks = getMediaTracks()
303
- let hasAudio = tracks.audio.count > 0
301
+ var hasMediaVolume: Bool {
304
302
  let volume = mediaPlayer?.audio?.volume ?? Int32(MediaPlayerConstants.minPlayerVolume)
305
- return hasAudio && volume > MediaPlayerConstants.minPlayerVolume
303
+ return volume > MediaPlayerConstants.minPlayerVolume
306
304
  }
307
305
 
308
306
  var source: String? {
@@ -556,11 +554,11 @@ extension LibVlcPlayerView: VLCMediaPlayerDelegate {
556
554
  retryUntil { [weak self] isLastAttempt in
557
555
  guard let self else { return true }
558
556
 
559
- if hasVideoOut || isLastAttempt {
557
+ if hasMediaLength || isLastAttempt {
560
558
  onFirstPlay(getMediaInfo())
561
559
  }
562
560
 
563
- return hasVideoOut
561
+ return hasMediaLength
564
562
  }
565
563
 
566
564
  retryUntil { [weak self] _ in
@@ -577,11 +575,11 @@ extension LibVlcPlayerView: VLCMediaPlayerDelegate {
577
575
  retryUntil { [weak self] _ in
578
576
  guard let self else { return true }
579
577
 
580
- if hasAudioOut {
578
+ if hasMediaVolume {
581
579
  MediaPlayerManager.shared.audioSessionManager.setAppropriateAudioSession()
582
580
  }
583
581
 
584
- return hasAudioOut
582
+ return hasMediaVolume
585
583
  }
586
584
 
587
585
  firstPlay = false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-libvlc-player",
3
- "version": "7.0.39",
3
+ "version": "7.0.40",
4
4
  "description": "LibVLC Player for Expo",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",