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.
Files changed (64) hide show
  1. package/CHANGELOG.md +7 -5
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/audio/AudioModule.kt +22 -4
  4. package/android/src/main/java/expo/modules/audio/AudioPlayer.kt +25 -5
  5. package/android/src/main/java/expo/modules/audio/AudioPlaylist.kt +24 -6
  6. package/android/src/main/java/expo/modules/audio/AudioRecorder.kt +5 -1
  7. package/android/src/main/java/expo/modules/audio/AudioStream.kt +18 -4
  8. package/android/src/main/java/expo/modules/audio/AudioStreamFileWriter.kt +15 -3
  9. package/android/src/main/java/expo/modules/audio/Playable.kt +5 -1
  10. package/android/src/main/java/expo/modules/audio/service/AudioControlsService.kt +26 -4
  11. package/build/AudioModule.types.d.ts +2 -2
  12. package/expo-module.config.json +0 -1
  13. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar +0 -0
  14. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.md5 +1 -0
  15. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha1 +1 -0
  16. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha256 +1 -0
  17. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha512 +1 -0
  18. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar +0 -0
  19. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.md5 +1 -0
  20. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha1 +1 -0
  21. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha256 +1 -0
  22. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha512 +1 -0
  23. 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
  24. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.md5 +1 -0
  25. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha1 +1 -0
  26. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha256 +1 -0
  27. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha512 +1 -0
  28. 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
  29. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.md5 +1 -0
  30. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha1 +1 -0
  31. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha256 +1 -0
  32. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha512 +1 -0
  33. package/package.json +5 -5
  34. package/src/AudioModule.types.ts +2 -2
  35. package/android/.gradle/8.14.3/checksums/checksums.lock +0 -0
  36. package/android/.gradle/8.14.3/fileChanges/last-build.bin +0 -0
  37. package/android/.gradle/8.14.3/fileHashes/fileHashes.lock +0 -0
  38. package/android/.gradle/8.14.3/gc.properties +0 -0
  39. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  40. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  41. package/android/.gradle/vcs-1/gc.properties +0 -0
  42. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar +0 -0
  43. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.md5 +0 -1
  44. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.sha1 +0 -1
  45. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.sha256 +0 -1
  46. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2-sources.jar.sha512 +0 -1
  47. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar +0 -0
  48. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.md5 +0 -1
  49. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.sha1 +0 -1
  50. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.sha256 +0 -1
  51. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.aar.sha512 +0 -1
  52. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.md5 +0 -1
  53. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.sha1 +0 -1
  54. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.sha256 +0 -1
  55. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.module.sha512 +0 -1
  56. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.md5 +0 -1
  57. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.sha1 +0 -1
  58. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.sha256 +0 -1
  59. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.2/expo.modules.audio-58.0.2.pom.sha512 +0 -1
  60. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml +0 -13
  61. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.md5 +0 -1
  62. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha1 +0 -1
  63. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha256 +0 -1
  64. 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
- ## Unpublished
3
+ ## 58.0.4
4
4
 
5
- ### 🛠 Breaking changes
5
+ ### Patch Changes
6
6
 
7
- ### 🎉 New features
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
- ### 🐛 Bug fixes
9
+ ## 58.0.3
10
10
 
11
- ### 💡 Others
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
 
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'expo.modules.audio'
7
- version = '58.0.2'
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.2"
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) return@RingerModeReceiver
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(if (newMuted) 0f else player.previousVolume)
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(if (newMuted) 0f else playlist.previousVolume)
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) AudioManager.MODE_IN_COMMUNICATION else AudioManager.MODE_NORMAL
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) null else offset / 1000.0
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) 1f else playbackRate
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) intendedPlayingState else ref.isPlaying
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) "playing" else "paused",
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) true else isLoaded,
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) return
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) return
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) return
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) intendedPlayingState else ref.isPlaying
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) true else isLoaded,
213
- "playbackRate" to if (ref.isPlaying) ref.playbackParameters.speed else currentRate,
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,
@@ -220,7 +220,11 @@ class AudioRecorder(
220
220
  "isFinished" to true,
221
221
  "hasError" to stopFailed,
222
222
  "error" to stopError,
223
- "url" to if (stopFailed) null else url
223
+ "url" to if (stopFailed) {
224
+ null
225
+ } else {
226
+ url
227
+ }
224
228
  )
225
229
  )
226
230
  }
@@ -89,7 +89,9 @@ class AudioStream(
89
89
  }
90
90
 
91
91
  fun stop() {
92
- if (!isStreaming) return
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) frames.toDouble() / currentSampleRate else 0.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) 2 else 4
181
- val channelCount = if (options.channels == 2) 2 else 1
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) 16 else 32
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) pcmBytesWritten + 44 else pcmBytesWritten
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) 1 else 3 // 1=PCM, 3=IEEE float
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) player.duration / 1000.0 else 0.0
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) "Pause" else "Play",
227
- buildActionPendingIntent(if (session.player.isPlaying) ACTION_PAUSE else ACTION_PLAY)
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(if (isPlaying) CommandButton.ICON_PAUSE else CommandButton.ICON_PLAY)
288
- .setDisplayName(if (isPlaying) "Pause" else "Play")
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 by the given number of seconds.
146
- * @param seconds The number of seconds to seek by.
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
  */
@@ -8,7 +8,6 @@
8
8
  "publication": {
9
9
  "groupId": "expo.modules.audio",
10
10
  "artifactId": "expo.modules.audio",
11
- "version": "58.0.2",
12
11
  "repository": "local-maven-repo"
13
12
  }
14
13
  }
@@ -0,0 +1 @@
1
+ b9a922c1e17423223501c1f3387d7719f6fae5cd9555b861931c948af389e891
@@ -0,0 +1 @@
1
+ 6b52b2086aaa77e0c85829d33c244fc628004d9826eff8170fcc7bee594583e0ca63141233401eb034b101d9c24c605d86079ed9ee2abdfda1ee93929586e9a0
@@ -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.2",
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.2.aar",
28
- "url": "expo.modules.audio-58.0.2.aar",
29
- "size": 560362,
30
- "sha512": "e3757f2937168f331ef90922c3a5da6f476601b7fb354df8622edee37b4824404217c1bb5631db78e4f6d330259cdeb9c101b332f53c8b56846ac668399f8874",
31
- "sha256": "0e86fd95b5e2891df5226a0910076c16d60d39e5734226e48410f7a1b549d253",
32
- "sha1": "9a483bcf13175bc63f74c9f365a1aa8eb36d1be2",
33
- "md5": "bdba4030c3a5d0b86a603ff532982593"
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.0"
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.0.0"
134
+ "requires": "1.1.0"
135
135
  }
136
136
  }
137
137
  ],
138
138
  "files": [
139
139
  {
140
- "name": "expo.modules.audio-58.0.2.aar",
141
- "url": "expo.modules.audio-58.0.2.aar",
142
- "size": 560362,
143
- "sha512": "e3757f2937168f331ef90922c3a5da6f476601b7fb354df8622edee37b4824404217c1bb5631db78e4f6d330259cdeb9c101b332f53c8b56846ac668399f8874",
144
- "sha256": "0e86fd95b5e2891df5226a0910076c16d60d39e5734226e48410f7a1b549d253",
145
- "sha1": "9a483bcf13175bc63f74c9f365a1aa8eb36d1be2",
146
- "md5": "bdba4030c3a5d0b86a603ff532982593"
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.2-sources.jar",
161
- "url": "expo.modules.audio-58.0.2-sources.jar",
162
- "size": 42976,
163
- "sha512": "80564e5416d69f74599228f023db86acb9d3c44babec8e77d4c1b8abb65f2e5b30f376410ab045e704368713e077750ed2ebb20f3b0a7438ccb40c6ca6996f2b",
164
- "sha256": "3eaa8dc5dcf0b9bc918b1c36882992bf9592a8c1f1e96c46f90ec6c8ea3458f2",
165
- "sha1": "2699d94b67281e681086c6c617caf17539dc9597",
166
- "md5": "456ecc07ebfc23d8c16dfa69b7e2d31f"
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
+ 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.2</version>
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.0</version>
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.0.0</version>
115
+ <version>1.1.0</version>
116
116
  <scope>runtime</scope>
117
117
  </dependency>
118
118
  </dependencies>
@@ -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.2",
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.0-preview.5",
29
- "expo-asset": "58.0.5",
30
- "expo-module-scripts": "56.0.3"
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",
@@ -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 by the given number of seconds.
188
- * @param seconds The number of seconds to seek by.
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
  */
File without changes
@@ -1,2 +0,0 @@
1
- #Mon Aug 18 10:42:03 IST 2025
2
- gradle.version=8.14.3
File without changes
@@ -1 +0,0 @@
1
- 3eaa8dc5dcf0b9bc918b1c36882992bf9592a8c1f1e96c46f90ec6c8ea3458f2
@@ -1 +0,0 @@
1
- 80564e5416d69f74599228f023db86acb9d3c44babec8e77d4c1b8abb65f2e5b30f376410ab045e704368713e077750ed2ebb20f3b0a7438ccb40c6ca6996f2b
@@ -1 +0,0 @@
1
- 9a483bcf13175bc63f74c9f365a1aa8eb36d1be2
@@ -1 +0,0 @@
1
- 0e86fd95b5e2891df5226a0910076c16d60d39e5734226e48410f7a1b549d253
@@ -1 +0,0 @@
1
- e3757f2937168f331ef90922c3a5da6f476601b7fb354df8622edee37b4824404217c1bb5631db78e4f6d330259cdeb9c101b332f53c8b56846ac668399f8874
@@ -1 +0,0 @@
1
- 68f68c036d8a9bb3e4ef5671dd26ec53efb29b68e1294cd79210d0ca4c5fcfb8
@@ -1 +0,0 @@
1
- c2e0c2a7be603ffbf4762d389bb1592abf0be55876f5a639a2779ecd123f8e7b5c1061cd516f879038bf9a5d226ee56169d5341e5160ae128ddf71a8c575653d
@@ -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