expo-libvlc-player 0.1.26 → 0.1.28
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/android/build.gradle
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
apply plugin: 'com.android.library'
|
|
2
2
|
|
|
3
3
|
group = 'expo.modules.libvlcplayer'
|
|
4
|
-
version = '0.1.
|
|
4
|
+
version = '0.1.27'
|
|
5
5
|
|
|
6
6
|
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
|
7
7
|
apply from: expoModulesCorePlugin
|
|
@@ -27,7 +27,7 @@ android {
|
|
|
27
27
|
namespace "expo.modules.libvlcplayer"
|
|
28
28
|
defaultConfig {
|
|
29
29
|
versionCode 1
|
|
30
|
-
versionName "0.1.
|
|
30
|
+
versionName "0.1.27"
|
|
31
31
|
consumerProguardFiles("proguard-rules.pro")
|
|
32
32
|
}
|
|
33
33
|
lintOptions {
|
|
@@ -23,7 +23,6 @@ class AudioFocusManager(
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
private var currentFocusRequest: AudioFocusRequest? = null
|
|
26
|
-
private var currentMixingMode: AudioMixingMode = AudioMixingMode.MIX_WITH_OTHERS
|
|
27
26
|
private val anyPlayerRequiresFocus: Boolean
|
|
28
27
|
get() =
|
|
29
28
|
views.toList().any { weakView ->
|
|
@@ -44,7 +43,7 @@ class AudioFocusManager(
|
|
|
44
43
|
}
|
|
45
44
|
|
|
46
45
|
if (mixingModes.isEmpty()) {
|
|
47
|
-
return AudioMixingMode.
|
|
46
|
+
return AudioMixingMode.AUTO
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
return mixingModes.reduce { currentAudioMixingMode, next ->
|
|
@@ -57,15 +56,13 @@ class AudioFocusManager(
|
|
|
57
56
|
|
|
58
57
|
if (audioMixingMode == AudioMixingMode.MIX_WITH_OTHERS || !anyPlayerRequiresFocus) {
|
|
59
58
|
abandonAudioFocus()
|
|
60
|
-
currentMixingMode = audioMixingMode
|
|
61
59
|
return
|
|
62
60
|
}
|
|
63
61
|
|
|
64
62
|
val audioFocusType =
|
|
65
|
-
when (
|
|
63
|
+
when (audioMixingMode) {
|
|
66
64
|
AudioMixingMode.DUCK_OTHERS -> AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
|
|
67
|
-
AudioMixingMode.AUTO -> AudioManager.AUDIOFOCUS_GAIN
|
|
68
|
-
AudioMixingMode.DO_NOT_MIX -> AudioManager.AUDIOFOCUS_GAIN
|
|
65
|
+
AudioMixingMode.AUTO, AudioMixingMode.DO_NOT_MIX -> AudioManager.AUDIOFOCUS_GAIN
|
|
69
66
|
else -> AudioManager.AUDIOFOCUS_GAIN
|
|
70
67
|
}
|
|
71
68
|
|
|
@@ -94,8 +91,6 @@ class AudioFocusManager(
|
|
|
94
91
|
@Suppress("DEPRECATION")
|
|
95
92
|
audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, audioFocusType)
|
|
96
93
|
}
|
|
97
|
-
|
|
98
|
-
currentMixingMode = audioMixingMode
|
|
99
94
|
}
|
|
100
95
|
|
|
101
96
|
private fun abandonAudioFocus() {
|
|
@@ -112,7 +107,7 @@ class AudioFocusManager(
|
|
|
112
107
|
}
|
|
113
108
|
|
|
114
109
|
fun updateAudioFocus() {
|
|
115
|
-
if (anyPlayerRequiresFocus
|
|
110
|
+
if (anyPlayerRequiresFocus) {
|
|
116
111
|
requestAudioFocus()
|
|
117
112
|
} else {
|
|
118
113
|
abandonAudioFocus()
|
|
@@ -157,11 +152,9 @@ class AudioFocusManager(
|
|
|
157
152
|
if (audioMixingMode == AudioMixingMode.DO_NOT_MIX) {
|
|
158
153
|
pausePlayerIfUnmuted(player)
|
|
159
154
|
} else {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
player.setVolume(volume)
|
|
164
|
-
}
|
|
155
|
+
val volume = player.getVolume() / 20
|
|
156
|
+
view.userVolume = volume
|
|
157
|
+
player.setVolume(volume)
|
|
165
158
|
}
|
|
166
159
|
}
|
|
167
160
|
}
|
|
@@ -175,9 +168,7 @@ class AudioFocusManager(
|
|
|
175
168
|
weakView.get()?.let { view ->
|
|
176
169
|
view.mediaPlayer?.let { player ->
|
|
177
170
|
if (player.getVolume() > MIN_PLAYER_VOLUME) {
|
|
178
|
-
|
|
179
|
-
player.setVolume(view.userVolume)
|
|
180
|
-
}
|
|
171
|
+
player.setVolume(view.userVolume)
|
|
181
172
|
}
|
|
182
173
|
}
|
|
183
174
|
}
|
|
@@ -190,9 +181,7 @@ class AudioFocusManager(
|
|
|
190
181
|
private fun pausePlayerIfUnmuted(player: MediaPlayer?) {
|
|
191
182
|
player?.let { mediaPlayer ->
|
|
192
183
|
if (mediaPlayer.getVolume() > MIN_PLAYER_VOLUME) {
|
|
193
|
-
|
|
194
|
-
mediaPlayer.pause()
|
|
195
|
-
}
|
|
184
|
+
mediaPlayer.pause()
|
|
196
185
|
}
|
|
197
186
|
}
|
|
198
187
|
}
|
|
@@ -14,7 +14,7 @@ fun LibVlcPlayerView.setMediaListener() {
|
|
|
14
14
|
|
|
15
15
|
val audios = player.getAudioTracks()
|
|
16
16
|
|
|
17
|
-
audios
|
|
17
|
+
audios?.forEach { track ->
|
|
18
18
|
val trackMap = Arguments.createMap()
|
|
19
19
|
trackMap.putInt("id", track.id)
|
|
20
20
|
trackMap.putString("name", track.name)
|
|
@@ -25,7 +25,7 @@ fun LibVlcPlayerView.setMediaListener() {
|
|
|
25
25
|
|
|
26
26
|
val videos = player.getVideoTracks()
|
|
27
27
|
|
|
28
|
-
videos
|
|
28
|
+
videos?.forEach { track ->
|
|
29
29
|
val trackMap = Arguments.createMap()
|
|
30
30
|
trackMap.putInt("id", track.id)
|
|
31
31
|
trackMap.putString("name", track.name)
|
|
@@ -36,7 +36,7 @@ fun LibVlcPlayerView.setMediaListener() {
|
|
|
36
36
|
|
|
37
37
|
val subtitles = player.getSpuTracks()
|
|
38
38
|
|
|
39
|
-
subtitles
|
|
39
|
+
subtitles?.forEach { track ->
|
|
40
40
|
val trackMap = Arguments.createMap()
|
|
41
41
|
trackMap.putInt("id", track.id)
|
|
42
42
|
trackMap.putString("name", track.name)
|
|
@@ -4,10 +4,10 @@ import Foundation
|
|
|
4
4
|
import MobileVLCKit
|
|
5
5
|
|
|
6
6
|
class MediaPlayerManager {
|
|
7
|
-
static
|
|
7
|
+
static let shared = MediaPlayerManager()
|
|
8
8
|
|
|
9
|
-
private static
|
|
10
|
-
private
|
|
9
|
+
private static let managerQueue = DispatchQueue(label: "com.expo.libvlcplayer.manager.managerQueue")
|
|
10
|
+
private let views = NSHashTable<LibVlcPlayerView>.weakObjects()
|
|
11
11
|
|
|
12
12
|
func registerView(view: LibVlcPlayerView) {
|
|
13
13
|
views.add(view)
|
|
@@ -15,9 +15,9 @@ class MediaPlayerManager {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
func unregisterView(view: LibVlcPlayerView) {
|
|
18
|
-
view.destroyPlayer()
|
|
19
18
|
views.remove(view)
|
|
20
19
|
setAppropriateAudioSessionOrWarn()
|
|
20
|
+
view.destroyPlayer()
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
func onAppForegrounded() {
|
|
@@ -114,14 +114,10 @@ class MediaPlayerManager {
|
|
|
114
114
|
|
|
115
115
|
private func findAudioMixingMode() -> AudioMixingMode? {
|
|
116
116
|
let playingViews = views.allObjects.filter { view in
|
|
117
|
-
|
|
118
|
-
return true
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
return false
|
|
117
|
+
view.mediaPlayer?.isPlaying == true
|
|
122
118
|
}
|
|
123
119
|
|
|
124
|
-
var audioMixingMode: AudioMixingMode = .
|
|
120
|
+
var audioMixingMode: AudioMixingMode = .auto
|
|
125
121
|
|
|
126
122
|
if playingViews.isEmpty {
|
|
127
123
|
return nil
|