expo-audio 58.0.2 → 58.0.4
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/CHANGELOG.md +7 -5
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/audio/AudioModule.kt +22 -4
- package/android/src/main/java/expo/modules/audio/AudioPlayer.kt +25 -5
- package/android/src/main/java/expo/modules/audio/AudioPlaylist.kt +24 -6
- package/android/src/main/java/expo/modules/audio/AudioRecorder.kt +5 -1
- package/android/src/main/java/expo/modules/audio/AudioStream.kt +18 -4
- package/android/src/main/java/expo/modules/audio/AudioStreamFileWriter.kt +15 -3
- package/android/src/main/java/expo/modules/audio/Playable.kt +5 -1
- package/android/src/main/java/expo/modules/audio/service/AudioControlsService.kt +26 -4
- package/build/AudioModule.types.d.ts +2 -2
- package/expo-module.config.json +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.2/expo.modules.audio-58.0.2.module → 58.0.4/expo.modules.audio-58.0.4.module} +24 -24
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.2/expo.modules.audio-58.0.2.pom → 58.0.4/expo.modules.audio-58.0.4.pom} +3 -3
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha512 +1 -0
- package/package.json +5 -5
- package/src/AudioModule.types.ts +2 -2
- package/android/.gradle/8.14.3/checksums/checksums.lock +0 -0
- package/android/.gradle/8.14.3/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.14.3/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.14.3/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml +0 -13
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha512 +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 58.0.4
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Patch Changes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Bump precompiled artifacts due to ABI breakage in expo-modules-jsi@58.0.6. ([#50881](https://github.com/expo/expo/pull/50881) by [@kitten](https://github.com/kitten))
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## 58.0.3
|
|
10
10
|
|
|
11
|
-
###
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Force-bump all packages, due to migration to changesets. ([#50762](https://github.com/expo/expo/pull/50762) by [@kitten](https://github.com/kitten))
|
|
12
14
|
|
|
13
15
|
## 58.0.2 — 2026-09-22
|
|
14
16
|
|
package/android/build.gradle
CHANGED
|
@@ -4,13 +4,13 @@ plugins {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
group = 'expo.modules.audio'
|
|
7
|
-
version = '58.0.
|
|
7
|
+
version = '58.0.4'
|
|
8
8
|
|
|
9
9
|
android {
|
|
10
10
|
namespace "expo.modules.audio"
|
|
11
11
|
defaultConfig {
|
|
12
12
|
versionCode 1
|
|
13
|
-
versionName "58.0.
|
|
13
|
+
versionName "58.0.4"
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
compileOptions {
|
|
@@ -73,7 +73,9 @@ class AudioModule : Module() {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
private val ringerModeReceiver = RingerModeReceiver {
|
|
76
|
-
if (playsInSilentMode)
|
|
76
|
+
if (playsInSilentMode) {
|
|
77
|
+
return@RingerModeReceiver
|
|
78
|
+
}
|
|
77
79
|
appContext.mainQueue.launch {
|
|
78
80
|
allPlayables.forEach { playable ->
|
|
79
81
|
if (playable.isPlaying) {
|
|
@@ -609,7 +611,13 @@ class AudioModule : Module() {
|
|
|
609
611
|
}.set { player, muted: Boolean? ->
|
|
610
612
|
val newMuted = muted ?: false
|
|
611
613
|
player.isMuted = newMuted
|
|
612
|
-
player.setVolume(
|
|
614
|
+
player.setVolume(
|
|
615
|
+
if (newMuted) {
|
|
616
|
+
0f
|
|
617
|
+
} else {
|
|
618
|
+
player.previousVolume
|
|
619
|
+
}
|
|
620
|
+
)
|
|
613
621
|
}
|
|
614
622
|
|
|
615
623
|
Property("shouldCorrectPitch") { player ->
|
|
@@ -945,7 +953,13 @@ class AudioModule : Module() {
|
|
|
945
953
|
}.set { playlist, muted: Boolean? ->
|
|
946
954
|
val newMuted = muted ?: false
|
|
947
955
|
playlist.isMuted = newMuted
|
|
948
|
-
playlist.setVolume(
|
|
956
|
+
playlist.setVolume(
|
|
957
|
+
if (newMuted) {
|
|
958
|
+
0f
|
|
959
|
+
} else {
|
|
960
|
+
playlist.previousVolume
|
|
961
|
+
}
|
|
962
|
+
)
|
|
949
963
|
}
|
|
950
964
|
|
|
951
965
|
Property("isLoaded") { playlist ->
|
|
@@ -1166,7 +1180,11 @@ class AudioModule : Module() {
|
|
|
1166
1180
|
|
|
1167
1181
|
@Suppress("DEPRECATION")
|
|
1168
1182
|
private fun updatePlaySoundThroughEarpiece(playThroughEarpiece: Boolean) {
|
|
1169
|
-
audioManager.mode = if (playThroughEarpiece)
|
|
1183
|
+
audioManager.mode = if (playThroughEarpiece) {
|
|
1184
|
+
AudioManager.MODE_IN_COMMUNICATION
|
|
1185
|
+
} else {
|
|
1186
|
+
AudioManager.MODE_NORMAL
|
|
1187
|
+
}
|
|
1170
1188
|
audioManager.setSpeakerphoneOn(!playThroughEarpiece)
|
|
1171
1189
|
}
|
|
1172
1190
|
|
|
@@ -75,7 +75,11 @@ class AudioPlayer(
|
|
|
75
75
|
val currentOffsetFromLive: Double?
|
|
76
76
|
get() {
|
|
77
77
|
val offset = ref.currentLiveOffset
|
|
78
|
-
return if (offset == C.TIME_UNSET)
|
|
78
|
+
return if (offset == C.TIME_UNSET) {
|
|
79
|
+
null
|
|
80
|
+
} else {
|
|
81
|
+
offset / 1000.0
|
|
82
|
+
}
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
private var samplingEnabled = false
|
|
@@ -143,7 +147,11 @@ class AudioPlayer(
|
|
|
143
147
|
|
|
144
148
|
override fun setPlaybackRate(rate: Float) {
|
|
145
149
|
val playbackRate = rate.coerceIn(0.1f, 2.0f)
|
|
146
|
-
val pitch = if (preservesPitch)
|
|
150
|
+
val pitch = if (preservesPitch) {
|
|
151
|
+
1f
|
|
152
|
+
} else {
|
|
153
|
+
playbackRate
|
|
154
|
+
}
|
|
147
155
|
ref.playbackParameters = PlaybackParameters(playbackRate, pitch)
|
|
148
156
|
}
|
|
149
157
|
|
|
@@ -157,20 +165,32 @@ class AudioPlayer(
|
|
|
157
165
|
val isLooping = ref.repeatMode == Player.REPEAT_MODE_ONE
|
|
158
166
|
val isLoaded = ref.playbackState == Player.STATE_READY
|
|
159
167
|
val isBuffering = ref.playbackState == Player.STATE_BUFFERING
|
|
160
|
-
val playingStatus = if (isBuffering)
|
|
168
|
+
val playingStatus = if (isBuffering) {
|
|
169
|
+
intendedPlayingState
|
|
170
|
+
} else {
|
|
171
|
+
ref.isPlaying
|
|
172
|
+
}
|
|
161
173
|
|
|
162
174
|
return mapOf(
|
|
163
175
|
"id" to id,
|
|
164
176
|
"currentTime" to currentTime,
|
|
165
177
|
"playbackState" to playbackStateToString(ref.playbackState),
|
|
166
|
-
"timeControlStatus" to if (playingStatus)
|
|
178
|
+
"timeControlStatus" to if (playingStatus) {
|
|
179
|
+
"playing"
|
|
180
|
+
} else {
|
|
181
|
+
"paused"
|
|
182
|
+
},
|
|
167
183
|
"reasonForWaitingToPlay" to null,
|
|
168
184
|
"mute" to isMuted,
|
|
169
185
|
"duration" to duration,
|
|
170
186
|
"playing" to playingStatus,
|
|
171
187
|
"loop" to isLooping,
|
|
172
188
|
"didJustFinish" to false,
|
|
173
|
-
"isLoaded" to if (ref.playbackState == Player.STATE_ENDED)
|
|
189
|
+
"isLoaded" to if (ref.playbackState == Player.STATE_ENDED) {
|
|
190
|
+
true
|
|
191
|
+
} else {
|
|
192
|
+
isLoaded
|
|
193
|
+
},
|
|
174
194
|
"playbackRate" to ref.playbackParameters.speed,
|
|
175
195
|
"shouldCorrectPitch" to preservesPitch,
|
|
176
196
|
"isBuffering" to isBuffering,
|
|
@@ -142,7 +142,9 @@ class AudioPlaylist(
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
fun skipTo(index: Int) {
|
|
145
|
-
if (index !in 0..<trackCount)
|
|
145
|
+
if (index !in 0..<trackCount) {
|
|
146
|
+
return
|
|
147
|
+
}
|
|
146
148
|
ref.seekToDefaultPosition(index)
|
|
147
149
|
}
|
|
148
150
|
|
|
@@ -154,7 +156,9 @@ class AudioPlaylist(
|
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
fun insert(source: AudioSource, index: Int) {
|
|
157
|
-
if (index !in 0..trackCount)
|
|
159
|
+
if (index !in 0..trackCount) {
|
|
160
|
+
return
|
|
161
|
+
}
|
|
158
162
|
val mediaItem = createMediaItemForSource?.invoke(source) ?: return
|
|
159
163
|
sources.add(index, source)
|
|
160
164
|
ref.addMediaItem(index, mediaItem)
|
|
@@ -162,7 +166,9 @@ class AudioPlaylist(
|
|
|
162
166
|
}
|
|
163
167
|
|
|
164
168
|
fun remove(index: Int) {
|
|
165
|
-
if (index !in 0..<trackCount)
|
|
169
|
+
if (index !in 0..<trackCount) {
|
|
170
|
+
return
|
|
171
|
+
}
|
|
166
172
|
|
|
167
173
|
sources.removeAt(index)
|
|
168
174
|
ref.removeMediaItem(index)
|
|
@@ -199,7 +205,11 @@ class AudioPlaylist(
|
|
|
199
205
|
val isMuted = ref.volume == 0f
|
|
200
206
|
val isLoaded = ref.playbackState == Player.STATE_READY
|
|
201
207
|
val isBuffering = ref.playbackState == Player.STATE_BUFFERING
|
|
202
|
-
val playingStatus = if (isBuffering)
|
|
208
|
+
val playingStatus = if (isBuffering) {
|
|
209
|
+
intendedPlayingState
|
|
210
|
+
} else {
|
|
211
|
+
ref.isPlaying
|
|
212
|
+
}
|
|
203
213
|
|
|
204
214
|
return mapOf(
|
|
205
215
|
"id" to id,
|
|
@@ -209,8 +219,16 @@ class AudioPlaylist(
|
|
|
209
219
|
"duration" to duration,
|
|
210
220
|
"playing" to playingStatus,
|
|
211
221
|
"isBuffering" to isBuffering,
|
|
212
|
-
"isLoaded" to if (ref.playbackState == Player.STATE_ENDED)
|
|
213
|
-
|
|
222
|
+
"isLoaded" to if (ref.playbackState == Player.STATE_ENDED) {
|
|
223
|
+
true
|
|
224
|
+
} else {
|
|
225
|
+
isLoaded
|
|
226
|
+
},
|
|
227
|
+
"playbackRate" to if (ref.isPlaying) {
|
|
228
|
+
ref.playbackParameters.speed
|
|
229
|
+
} else {
|
|
230
|
+
currentRate
|
|
231
|
+
},
|
|
214
232
|
"muted" to isMuted,
|
|
215
233
|
"volume" to ref.volume,
|
|
216
234
|
"loop" to loopMode.value,
|
|
@@ -89,7 +89,9 @@ class AudioStream(
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
fun stop() {
|
|
92
|
-
if (!isStreaming)
|
|
92
|
+
if (!isStreaming) {
|
|
93
|
+
return
|
|
94
|
+
}
|
|
93
95
|
isStreaming = false
|
|
94
96
|
captureJob?.cancel()
|
|
95
97
|
captureJob = null
|
|
@@ -139,7 +141,11 @@ class AudioStream(
|
|
|
139
141
|
val currentChannels = channels
|
|
140
142
|
AudioStreamFileRecordingResult().apply {
|
|
141
143
|
uri = writer.file.toURI().toURL()
|
|
142
|
-
duration = if (currentSampleRate > 0)
|
|
144
|
+
duration = if (currentSampleRate > 0) {
|
|
145
|
+
frames.toDouble() / currentSampleRate
|
|
146
|
+
} else {
|
|
147
|
+
0.0
|
|
148
|
+
}
|
|
143
149
|
size = totalSize
|
|
144
150
|
sampleRate = currentSampleRate
|
|
145
151
|
channels = currentChannels
|
|
@@ -177,8 +183,16 @@ class AudioStream(
|
|
|
177
183
|
}
|
|
178
184
|
|
|
179
185
|
val resolvedMinBuffer = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioEncoding)
|
|
180
|
-
val bytesPerSample = if (isInt16)
|
|
181
|
-
|
|
186
|
+
val bytesPerSample = if (isInt16) {
|
|
187
|
+
2
|
|
188
|
+
} else {
|
|
189
|
+
4
|
|
190
|
+
}
|
|
191
|
+
val channelCount = if (options.channels == 2) {
|
|
192
|
+
2
|
|
193
|
+
} else {
|
|
194
|
+
1
|
|
195
|
+
}
|
|
182
196
|
val desiredBufferSize = sampleRate * channelCount * bytesPerSample * DEFAULT_BUFFER_DURATION_MS / 1000
|
|
183
197
|
val bufferSize = maxOf(resolvedMinBuffer, desiredBufferSize)
|
|
184
198
|
|
|
@@ -18,7 +18,11 @@ internal class AudioStreamFileWriter(
|
|
|
18
18
|
private val channels: Int,
|
|
19
19
|
private val encoding: AudioStreamEncoding
|
|
20
20
|
) {
|
|
21
|
-
private val bitsPerSample = if (encoding == AudioStreamEncoding.INT16)
|
|
21
|
+
private val bitsPerSample = if (encoding == AudioStreamEncoding.INT16) {
|
|
22
|
+
16
|
|
23
|
+
} else {
|
|
24
|
+
32
|
|
25
|
+
}
|
|
22
26
|
private val bytesPerFrame = channels * (bitsPerSample / 8)
|
|
23
27
|
|
|
24
28
|
// Initialised in the init block so the file-existence check runs before any handle is opened.
|
|
@@ -90,12 +94,20 @@ internal class AudioStreamFileWriter(
|
|
|
90
94
|
out.fd.sync()
|
|
91
95
|
out.close()
|
|
92
96
|
}
|
|
93
|
-
val totalSize = if (format == AudioStreamFileFormat.WAV)
|
|
97
|
+
val totalSize = if (format == AudioStreamFileFormat.WAV) {
|
|
98
|
+
pcmBytesWritten + 44
|
|
99
|
+
} else {
|
|
100
|
+
pcmBytesWritten
|
|
101
|
+
}
|
|
94
102
|
return Pair(totalSize, framesWritten)
|
|
95
103
|
}
|
|
96
104
|
|
|
97
105
|
private fun writeWavHeader(dataSize: Int) {
|
|
98
|
-
val audioFormat = if (encoding == AudioStreamEncoding.INT16)
|
|
106
|
+
val audioFormat = if (encoding == AudioStreamEncoding.INT16) {
|
|
107
|
+
1
|
|
108
|
+
} else {
|
|
109
|
+
3 // 1=PCM, 3=IEEE float
|
|
110
|
+
}
|
|
99
111
|
val byteRate = sampleRate * channels * (bitsPerSample / 8)
|
|
100
112
|
val blockAlign = channels * (bitsPerSample / 8)
|
|
101
113
|
|
|
@@ -21,7 +21,11 @@ interface Playable {
|
|
|
21
21
|
val appContext: AppContext?
|
|
22
22
|
|
|
23
23
|
val currentTime: Double get() = player.currentPosition / 1000.0
|
|
24
|
-
val duration: Double get() = if (player.duration != C.TIME_UNSET)
|
|
24
|
+
val duration: Double get() = if (player.duration != C.TIME_UNSET) {
|
|
25
|
+
player.duration / 1000.0
|
|
26
|
+
} else {
|
|
27
|
+
0.0
|
|
28
|
+
}
|
|
25
29
|
val isPlaying: Boolean get() = player.isPlaying
|
|
26
30
|
val volume: Float get() = player.volume
|
|
27
31
|
|
|
@@ -223,8 +223,18 @@ class AudioControlsService : MediaSessionService() {
|
|
|
223
223
|
} else {
|
|
224
224
|
androidx.media3.session.R.drawable.media3_icon_play
|
|
225
225
|
},
|
|
226
|
-
if (session.player.isPlaying)
|
|
227
|
-
|
|
226
|
+
if (session.player.isPlaying) {
|
|
227
|
+
"Pause"
|
|
228
|
+
} else {
|
|
229
|
+
"Play"
|
|
230
|
+
},
|
|
231
|
+
buildActionPendingIntent(
|
|
232
|
+
if (session.player.isPlaying) {
|
|
233
|
+
ACTION_PAUSE
|
|
234
|
+
} else {
|
|
235
|
+
ACTION_PLAY
|
|
236
|
+
}
|
|
237
|
+
)
|
|
228
238
|
)
|
|
229
239
|
)
|
|
230
240
|
compactViewIndices.add(currentIndex)
|
|
@@ -284,8 +294,20 @@ class AudioControlsService : MediaSessionService() {
|
|
|
284
294
|
}
|
|
285
295
|
|
|
286
296
|
mediaButtons.add(
|
|
287
|
-
CommandButton.Builder(
|
|
288
|
-
|
|
297
|
+
CommandButton.Builder(
|
|
298
|
+
if (isPlaying) {
|
|
299
|
+
CommandButton.ICON_PAUSE
|
|
300
|
+
} else {
|
|
301
|
+
CommandButton.ICON_PLAY
|
|
302
|
+
}
|
|
303
|
+
)
|
|
304
|
+
.setDisplayName(
|
|
305
|
+
if (isPlaying) {
|
|
306
|
+
"Pause"
|
|
307
|
+
} else {
|
|
308
|
+
"Play"
|
|
309
|
+
}
|
|
310
|
+
)
|
|
289
311
|
.setEnabled(true)
|
|
290
312
|
.setPlayerCommand(Player.COMMAND_PLAY_PAUSE)
|
|
291
313
|
.setSlots(CommandButton.SLOT_CENTRAL)
|
|
@@ -142,8 +142,8 @@ export declare class AudioPlayer extends SharedObject<AudioEvents> {
|
|
|
142
142
|
*/
|
|
143
143
|
replace(source: AudioSource): void;
|
|
144
144
|
/**
|
|
145
|
-
* Seeks the playback
|
|
146
|
-
* @param seconds The
|
|
145
|
+
* Seeks the playback to a specific position in seconds.
|
|
146
|
+
* @param seconds The position to seek to.
|
|
147
147
|
* @param toleranceMillisBefore The tolerance allowed before the requested seek time, in milliseconds. iOS only.
|
|
148
148
|
* @param toleranceMillisAfter The tolerance allowed after the requested seek time, in milliseconds. iOS only.
|
|
149
149
|
*/
|
package/expo-module.config.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d35f8337cadbb8f86ff1171e41ad9d5f
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
449174b8832846258619989167d246fd963d015d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b9a922c1e17423223501c1f3387d7719f6fae5cd9555b861931c948af389e891
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6b52b2086aaa77e0c85829d33c244fc628004d9826eff8170fcc7bee594583e0ca63141233401eb034b101d9c24c605d86079ed9ee2abdfda1ee93929586e9a0
|
package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d333307c9a865618efe34cad33089160
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2a51da42795e2957fbe1d1eb650010d66125cf92
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0c0ed2cf6c37a869edbcfc37199ef6bfd777023df6f61b7ceb70f3a2d15cf646
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d4b63688a2ed10c3f1fe4192ed93dc10be270a38c726808f283042c6beeafb2065684b81722fd82f13c8fa586ae6f9f475998388b93ab5ad56523e645a1a1df0
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "expo.modules.audio",
|
|
5
5
|
"module": "expo.modules.audio",
|
|
6
|
-
"version": "58.0.
|
|
6
|
+
"version": "58.0.4",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
|
-
"name": "expo.modules.audio-58.0.
|
|
28
|
-
"url": "expo.modules.audio-58.0.
|
|
29
|
-
"size":
|
|
30
|
-
"sha512": "
|
|
31
|
-
"sha256": "
|
|
32
|
-
"sha1": "
|
|
33
|
-
"md5": "
|
|
27
|
+
"name": "expo.modules.audio-58.0.4.aar",
|
|
28
|
+
"url": "expo.modules.audio-58.0.4.aar",
|
|
29
|
+
"size": 561320,
|
|
30
|
+
"sha512": "d4b63688a2ed10c3f1fe4192ed93dc10be270a38c726808f283042c6beeafb2065684b81722fd82f13c8fa586ae6f9f475998388b93ab5ad56523e645a1a1df0",
|
|
31
|
+
"sha256": "0c0ed2cf6c37a869edbcfc37199ef6bfd777023df6f61b7ceb70f3a2d15cf646",
|
|
32
|
+
"sha1": "2a51da42795e2957fbe1d1eb650010d66125cf92",
|
|
33
|
+
"md5": "d333307c9a865618efe34cad33089160"
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
},
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"group": "org.jetbrains.kotlin",
|
|
48
48
|
"module": "kotlin-stdlib-jdk7",
|
|
49
49
|
"version": {
|
|
50
|
-
"requires": "2.2.
|
|
50
|
+
"requires": "2.2.10"
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
{
|
|
@@ -131,19 +131,19 @@
|
|
|
131
131
|
"group": "io.github.expo.pika",
|
|
132
132
|
"module": "pika-api",
|
|
133
133
|
"version": {
|
|
134
|
-
"requires": "1.
|
|
134
|
+
"requires": "1.1.0"
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
],
|
|
138
138
|
"files": [
|
|
139
139
|
{
|
|
140
|
-
"name": "expo.modules.audio-58.0.
|
|
141
|
-
"url": "expo.modules.audio-58.0.
|
|
142
|
-
"size":
|
|
143
|
-
"sha512": "
|
|
144
|
-
"sha256": "
|
|
145
|
-
"sha1": "
|
|
146
|
-
"md5": "
|
|
140
|
+
"name": "expo.modules.audio-58.0.4.aar",
|
|
141
|
+
"url": "expo.modules.audio-58.0.4.aar",
|
|
142
|
+
"size": 561320,
|
|
143
|
+
"sha512": "d4b63688a2ed10c3f1fe4192ed93dc10be270a38c726808f283042c6beeafb2065684b81722fd82f13c8fa586ae6f9f475998388b93ab5ad56523e645a1a1df0",
|
|
144
|
+
"sha256": "0c0ed2cf6c37a869edbcfc37199ef6bfd777023df6f61b7ceb70f3a2d15cf646",
|
|
145
|
+
"sha1": "2a51da42795e2957fbe1d1eb650010d66125cf92",
|
|
146
|
+
"md5": "d333307c9a865618efe34cad33089160"
|
|
147
147
|
}
|
|
148
148
|
]
|
|
149
149
|
},
|
|
@@ -157,13 +157,13 @@
|
|
|
157
157
|
},
|
|
158
158
|
"files": [
|
|
159
159
|
{
|
|
160
|
-
"name": "expo.modules.audio-58.0.
|
|
161
|
-
"url": "expo.modules.audio-58.0.
|
|
162
|
-
"size":
|
|
163
|
-
"sha512": "
|
|
164
|
-
"sha256": "
|
|
165
|
-
"sha1": "
|
|
166
|
-
"md5": "
|
|
160
|
+
"name": "expo.modules.audio-58.0.4-sources.jar",
|
|
161
|
+
"url": "expo.modules.audio-58.0.4-sources.jar",
|
|
162
|
+
"size": 43055,
|
|
163
|
+
"sha512": "6b52b2086aaa77e0c85829d33c244fc628004d9826eff8170fcc7bee594583e0ca63141233401eb034b101d9c24c605d86079ed9ee2abdfda1ee93929586e9a0",
|
|
164
|
+
"sha256": "b9a922c1e17423223501c1f3387d7719f6fae5cd9555b861931c948af389e891",
|
|
165
|
+
"sha1": "449174b8832846258619989167d246fd963d015d",
|
|
166
|
+
"md5": "d35f8337cadbb8f86ff1171e41ad9d5f"
|
|
167
167
|
}
|
|
168
168
|
]
|
|
169
169
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
618a8253ff0eebd895d2acd4a6405dc3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
fdc8ae0af09692c07d215bc7f7889813671424df
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
decd83e81a4bef0a035c67a9e8fd9981114e02611a315293838a8f35c6486beb
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
bb910e6f53e77c6cb5c40c6d98d27486ef68c68ae635e5853bd7205d0137822e4f6736e0b0eca3516ad737d049a0acfdbcc21d9cd54fe2eda00b982e0c2d17e6
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
10
10
|
<groupId>expo.modules.audio</groupId>
|
|
11
11
|
<artifactId>expo.modules.audio</artifactId>
|
|
12
|
-
<version>58.0.
|
|
12
|
+
<version>58.0.4</version>
|
|
13
13
|
<packaging>aar</packaging>
|
|
14
14
|
<name>expo.modules.audio</name>
|
|
15
15
|
<url>https://github.com/expo/expo</url>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
<dependency>
|
|
41
41
|
<groupId>org.jetbrains.kotlin</groupId>
|
|
42
42
|
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
|
43
|
-
<version>2.2.
|
|
43
|
+
<version>2.2.10</version>
|
|
44
44
|
<scope>runtime</scope>
|
|
45
45
|
</dependency>
|
|
46
46
|
<dependency>
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
<dependency>
|
|
113
113
|
<groupId>io.github.expo.pika</groupId>
|
|
114
114
|
<artifactId>pika-api</artifactId>
|
|
115
|
-
<version>1.
|
|
115
|
+
<version>1.1.0</version>
|
|
116
116
|
<scope>runtime</scope>
|
|
117
117
|
</dependency>
|
|
118
118
|
</dependencies>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1411e0eac9181f2143f339a5e0926d26
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3553c6a7ac54616659753c4f03d7d3783b1908a3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
5e376957cfba5b72e87cb249b3778a698cb139ceaf6ef5a6fc1dd75f7f3505f4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a07ea293fb89b12a185465fdc1352423c2d0045c534b9f2ee2ffbff585791103e4c3c709fa211c462c65a73515d678a85fb4a2e12838e86121939494e509a1fe
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-audio",
|
|
3
|
-
"version": "58.0.
|
|
3
|
+
"version": "58.0.4",
|
|
4
4
|
"description": "A cross-platform audio library for React Native and Expo apps.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"android",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"@types/jest": "^29.2.1",
|
|
26
26
|
"@types/node": "^22.14.0",
|
|
27
27
|
"@types/react": "~19.3.0",
|
|
28
|
-
"expo": "58.0.
|
|
29
|
-
"expo-asset": "58.0.
|
|
30
|
-
"expo-module-scripts": "56.0.
|
|
28
|
+
"expo": "58.0.2",
|
|
29
|
+
"expo-asset": "58.0.10",
|
|
30
|
+
"expo-module-scripts": "56.0.5"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"expo": "*",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"react-native": "*"
|
|
37
37
|
},
|
|
38
38
|
"title": "Expo Audio",
|
|
39
|
-
"gitHead": "add8cbf49f477cfd2283ae05af35b4713a773c55",
|
|
40
39
|
"scripts": {
|
|
40
|
+
"precompile-android": "et prebuild-android-package-for-publish",
|
|
41
41
|
"build": "pnpm run build:lib && pnpm run build:plugin",
|
|
42
42
|
"build:lib": "expo-build src",
|
|
43
43
|
"build:plugin": "expo-build --base plugin cjs:src",
|
package/src/AudioModule.types.ts
CHANGED
|
@@ -184,8 +184,8 @@ export declare class AudioPlayer extends SharedObject<AudioEvents> {
|
|
|
184
184
|
replace(source: AudioSource): void;
|
|
185
185
|
|
|
186
186
|
/**
|
|
187
|
-
* Seeks the playback
|
|
188
|
-
* @param seconds The
|
|
187
|
+
* Seeks the playback to a specific position in seconds.
|
|
188
|
+
* @param seconds The position to seek to.
|
|
189
189
|
* @param toleranceMillisBefore The tolerance allowed before the requested seek time, in milliseconds. iOS only.
|
|
190
190
|
* @param toleranceMillisAfter The tolerance allowed after the requested seek time, in milliseconds. iOS only.
|
|
191
191
|
*/
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
456ecc07ebfc23d8c16dfa69b7e2d31f
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2699d94b67281e681086c6c617caf17539dc9597
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3eaa8dc5dcf0b9bc918b1c36882992bf9592a8c1f1e96c46f90ec6c8ea3458f2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
80564e5416d69f74599228f023db86acb9d3c44babec8e77d4c1b8abb65f2e5b30f376410ab045e704368713e077750ed2ebb20f3b0a7438ccb40c6ca6996f2b
|
package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar
DELETED
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
bdba4030c3a5d0b86a603ff532982593
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9a483bcf13175bc63f74c9f365a1aa8eb36d1be2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0e86fd95b5e2891df5226a0910076c16d60d39e5734226e48410f7a1b549d253
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e3757f2937168f331ef90922c3a5da6f476601b7fb354df8622edee37b4824404217c1bb5631db78e4f6d330259cdeb9c101b332f53c8b56846ac668399f8874
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
cc66b2b26869029d57ca52e27a10a08a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8317d17ca0bff1a03ded32c9ae799823e6fc448f
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
68f68c036d8a9bb3e4ef5671dd26ec53efb29b68e1294cd79210d0ca4c5fcfb8
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
c2e0c2a7be603ffbf4762d389bb1592abf0be55876f5a639a2779ecd123f8e7b5c1061cd516f879038bf9a5d226ee56169d5341e5160ae128ddf71a8c575653d
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
fae088bda428c9f17e551a160fd35dc9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f10703c00d1ecc005a44dc9fc7dbb3764b2f69cc
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
088d7a0dc3f7027fe5f7abb1be189346a4c07d0611ef6aa231c7adff41cb38bb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
25d27b303c69224ba75ce4c422fdaaf8e113376585c68d16f6fc4171ba159b758d54d2a4212b880024a639fee4a64ef30900d21e45a1997c04268042aa9bce85
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<metadata>
|
|
3
|
-
<groupId>expo.modules.audio</groupId>
|
|
4
|
-
<artifactId>expo.modules.audio</artifactId>
|
|
5
|
-
<versioning>
|
|
6
|
-
<latest>58.0.2</latest>
|
|
7
|
-
<release>58.0.2</release>
|
|
8
|
-
<versions>
|
|
9
|
-
<version>58.0.2</version>
|
|
10
|
-
</versions>
|
|
11
|
-
<lastUpdated>20260922160133</lastUpdated>
|
|
12
|
-
</versioning>
|
|
13
|
-
</metadata>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a72f4e9f837c54ce7d8ff808d2b7b6b0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
20b8733ce882ecdccae2c097bf9aeafb002c766a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9f75a85f7f93ea62f21f6bc0e7ae69d975d8ab60caef6640d2a8ae3420ee300e
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a9581fc20cebc7cf1e79979d5632908fea4dabc445ffa574c3e632ce78fc2e7fc15cb1fadb9a0615d2f932cf92b637f672b95419fbb07a06de9749dc9ac1496d
|