expo-audio 58.0.8 → 58.0.9

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 (33) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/android/build.gradle +2 -2
  3. package/ios/AudioModule.swift +2 -3
  4. package/ios/AudioPlayer.swift +17 -0
  5. package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8.module → 58.0.9/expo.modules.audio-58.0.9.module} +7 -7
  6. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.module.md5 +1 -0
  7. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.module.sha1 +1 -0
  8. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.module.sha256 +1 -0
  9. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.module.sha512 +1 -0
  10. package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8.pom → 58.0.9/expo.modules.audio-58.0.9.pom} +1 -1
  11. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.pom.md5 +1 -0
  12. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.pom.sha1 +1 -0
  13. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.pom.sha256 +1 -0
  14. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.9/expo.modules.audio-58.0.9.pom.sha512 +1 -0
  15. package/package.json +3 -3
  16. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.module.md5 +0 -1
  17. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.module.sha1 +0 -1
  18. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.module.sha256 +0 -1
  19. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.module.sha512 +0 -1
  20. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.pom.md5 +0 -1
  21. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.pom.sha1 +0 -1
  22. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.pom.sha256 +0 -1
  23. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.8/expo.modules.audio-58.0.8.pom.sha512 +0 -1
  24. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8-sources.jar → 58.0.9/expo.modules.audio-58.0.9-sources.jar} +0 -0
  25. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8-sources.jar.md5 → 58.0.9/expo.modules.audio-58.0.9-sources.jar.md5} +0 -0
  26. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8-sources.jar.sha1 → 58.0.9/expo.modules.audio-58.0.9-sources.jar.sha1} +0 -0
  27. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8-sources.jar.sha256 → 58.0.9/expo.modules.audio-58.0.9-sources.jar.sha256} +0 -0
  28. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8-sources.jar.sha512 → 58.0.9/expo.modules.audio-58.0.9-sources.jar.sha512} +0 -0
  29. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8.aar → 58.0.9/expo.modules.audio-58.0.9.aar} +0 -0
  30. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8.aar.md5 → 58.0.9/expo.modules.audio-58.0.9.aar.md5} +0 -0
  31. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8.aar.sha1 → 58.0.9/expo.modules.audio-58.0.9.aar.sha1} +0 -0
  32. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8.aar.sha256 → 58.0.9/expo.modules.audio-58.0.9.aar.sha256} +0 -0
  33. /package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.8/expo.modules.audio-58.0.8.aar.sha512 → 58.0.9/expo.modules.audio-58.0.9.aar.sha512} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 58.0.9
4
+
5
+ ### Patch Changes
6
+
7
+ - [iOS] Re-apply `preferredForwardBufferDuration` when the player item is replaced or a loop item is queued. ([#50468](https://github.com/expo/expo/pull/50468) by [@rmotafreitas](https://github.com/rmotafreitas))
8
+
3
9
  ## 58.0.8
4
10
 
5
11
  ### Patch Changes
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'expo.modules.audio'
7
- version = '58.0.8'
7
+ version = '58.0.9'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.audio"
11
11
  defaultConfig {
12
12
  versionCode 1
13
- versionName "58.0.8"
13
+ versionName "58.0.9"
14
14
  }
15
15
 
16
16
  compileOptions {
@@ -136,14 +136,13 @@ public class AudioModule: Module {
136
136
  avPlayer = cachedPlayer
137
137
  } else {
138
138
  avPlayer = AudioUtils.createAVPlayer(from: source)
139
- if preferredForwardBufferDuration > 0 {
140
- avPlayer.currentItem?.preferredForwardBufferDuration = preferredForwardBufferDuration
141
- }
142
139
  }
143
140
  avPlayer.allowsExternalPlayback = allowsExternalPlayback
144
141
  let player = AudioPlayer(avPlayer, interval: updateInterval, source: source)
145
142
  player.owningRegistry = self.registry
146
143
  player.keepAudioSessionActive = keepAudioSessionActive
144
+ // Store the preference so it is re-applied whenever the item is replaced.
145
+ player.preferredForwardBufferDuration = preferredForwardBufferDuration
147
146
  let playerId = player.id
148
147
  player.onRelease = { [weak audioModule = self] in
149
148
  audioModule?.unregisterAudioSessionActivityKeeper(playerId)
@@ -25,6 +25,14 @@ public class AudioPlayer: SharedRef<AVPlayer>, Playable, LockScreenPlayable {
25
25
  }
26
26
  var samplingEnabled = false
27
27
  var keepAudioSessionActive = false
28
+ /// Forward-buffer preference. `AVPlayerItem.preferredForwardBufferDuration` is per item and
29
+ /// resets to the default when the item is replaced (source swap, reconnect, media-services
30
+ /// reset), so the value is stored and re-applied to every new item.
31
+ var preferredForwardBufferDuration: TimeInterval = 0 {
32
+ didSet {
33
+ applyPreferredForwardBufferDuration()
34
+ }
35
+ }
28
36
  var onRelease: (() -> Void)?
29
37
 
30
38
  var isLooping = false {
@@ -208,6 +216,13 @@ public class AudioPlayer: SharedRef<AVPlayer>, Playable, LockScreenPlayable {
208
216
  }
209
217
  }
210
218
 
219
+ private func applyPreferredForwardBufferDuration() {
220
+ guard preferredForwardBufferDuration > 0 else {
221
+ return
222
+ }
223
+ ref.currentItem?.preferredForwardBufferDuration = preferredForwardBufferDuration
224
+ }
225
+
211
226
  private func setupPublisher() {
212
227
  ref.publisher(for: \.currentItem?.status)
213
228
  .sink { [weak self] status in
@@ -239,6 +254,7 @@ public class AudioPlayer: SharedRef<AVPlayer>, Playable, LockScreenPlayable {
239
254
  guard let self else {
240
255
  return
241
256
  }
257
+ self.applyPreferredForwardBufferDuration()
242
258
  if self.isLooping {
243
259
  self.enqueueNextLoopItem()
244
260
  self.addPlaybackEndNotification()
@@ -437,6 +453,7 @@ public class AudioPlayer: SharedRef<AVPlayer>, Playable, LockScreenPlayable {
437
453
  }
438
454
  let nextItem = AVPlayerItem(asset: currentItem.asset)
439
455
  nextItem.audioTimePitchAlgorithm = currentItem.audioTimePitchAlgorithm
456
+ nextItem.preferredForwardBufferDuration = currentItem.preferredForwardBufferDuration
440
457
  queuePlayer.insert(nextItem, after: currentItem)
441
458
  }
442
459
 
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.audio",
5
5
  "module": "expo.modules.audio",
6
- "version": "58.0.8",
6
+ "version": "58.0.9",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,8 +24,8 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.audio-58.0.8.aar",
28
- "url": "expo.modules.audio-58.0.8.aar",
27
+ "name": "expo.modules.audio-58.0.9.aar",
28
+ "url": "expo.modules.audio-58.0.9.aar",
29
29
  "size": 562788,
30
30
  "sha512": "4251e28214a66fe78e625507dc58ff5a7f4547ce00a7ac7fd93171043547fd383168a0fff1936654259ebb916e4ac392770afd96be55a8ec7e7185fac49f7d2f",
31
31
  "sha256": "148a8d932e5afc93e3a3cf4ea35d969d7f3329ac3127cc9da9fea428144321c9",
@@ -137,8 +137,8 @@
137
137
  ],
138
138
  "files": [
139
139
  {
140
- "name": "expo.modules.audio-58.0.8.aar",
141
- "url": "expo.modules.audio-58.0.8.aar",
140
+ "name": "expo.modules.audio-58.0.9.aar",
141
+ "url": "expo.modules.audio-58.0.9.aar",
142
142
  "size": 562788,
143
143
  "sha512": "4251e28214a66fe78e625507dc58ff5a7f4547ce00a7ac7fd93171043547fd383168a0fff1936654259ebb916e4ac392770afd96be55a8ec7e7185fac49f7d2f",
144
144
  "sha256": "148a8d932e5afc93e3a3cf4ea35d969d7f3329ac3127cc9da9fea428144321c9",
@@ -157,8 +157,8 @@
157
157
  },
158
158
  "files": [
159
159
  {
160
- "name": "expo.modules.audio-58.0.8-sources.jar",
161
- "url": "expo.modules.audio-58.0.8-sources.jar",
160
+ "name": "expo.modules.audio-58.0.9-sources.jar",
161
+ "url": "expo.modules.audio-58.0.9-sources.jar",
162
162
  "size": 44166,
163
163
  "sha512": "ec4911e9008b292a0785c1496a40432c56b611dc2f19ecb0dc71020d4b439fed146d7bb18337a96bf6b77da28cb0fe71e6e8c7bd17b37649e554e4de43fb9d37",
164
164
  "sha256": "0f11527368066bf18f182fb39f3c1d69696aa59ddaec4b7ee16ec48183e25e23",
@@ -0,0 +1 @@
1
+ fc5b401e0b74ce952248f6326f1886e58c5782af8ba4be045499ce3d6662a248
@@ -0,0 +1 @@
1
+ 0bf6874fcb8ebe25db4034cff6ff6f76dedfb0f0640dc04f825d50a321801a66598c09c5eb4b8daaa0a27bd64b2208e53ed19aa4632674de03d125b1ae50c6f1
@@ -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.8</version>
12
+ <version>58.0.9</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.audio</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ b7cd8f79f5f7e4914206b6912eeb50edd852a485299c7c3e430306db626ce63b
@@ -0,0 +1 @@
1
+ 641646b9c31bd16aa30a7bf6cac11ad642525e2812a41ca135edcfbddece5e8038816658ff8906941ef5e3343f87b870dd8774790484c339997f15558f6f4b5b
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-audio",
3
- "version": "58.0.8",
3
+ "version": "58.0.9",
4
4
  "description": "A cross-platform audio library for React Native and Expo apps.",
5
5
  "keywords": [
6
6
  "android",
@@ -26,8 +26,8 @@
26
26
  "@types/jest": "^30.0.0",
27
27
  "@types/node": "^22.14.0",
28
28
  "@types/react": "~19.3.0",
29
- "expo": "58.0.7",
30
- "expo-asset": "58.0.13"
29
+ "expo": "58.0.8",
30
+ "expo-asset": "58.0.14"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "expo": "*",
@@ -1 +0,0 @@
1
- 481cc4ef369c80dbd753c3bbea6ea352709701224a2dfb653840c7bded86978b
@@ -1 +0,0 @@
1
- 04262d3a0cd6d37995770d7f1f382e83bc506c30914eb5de5471b2e9e4c23b5db707c8f6ae5c468d443198562fe81a1062e46cb85f37dee10b9abf02082343f0
@@ -1 +0,0 @@
1
- 0a0856248d796b5c3a1ca99943e10d94458c38e2
@@ -1 +0,0 @@
1
- c00be317ef58194377605e45cf90cc515d2fef8a811b1bf7cc4d134126376897
@@ -1 +0,0 @@
1
- a193e55608204cef121d078d46d5829cc00e091829035c617c286861573f064e226bd7618e15a5261e62cff48c9b6ee28c0ae8ebf9d0169cd5d6f62a995b50e0