expo-audio 0.4.4 → 0.4.6

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 (50) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/audio/AudioModule.kt +43 -27
  4. package/android/src/main/java/expo/modules/audio/AudioRecorder.kt +7 -3
  5. package/expo-module.config.json +1 -1
  6. package/ios/AudioUtils.swift +62 -2
  7. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6-sources.jar +0 -0
  8. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6-sources.jar.md5 +1 -0
  9. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6-sources.jar.sha1 +1 -0
  10. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6-sources.jar.sha256 +1 -0
  11. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6-sources.jar.sha512 +1 -0
  12. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.aar +0 -0
  13. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.aar.md5 +1 -0
  14. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.aar.sha1 +1 -0
  15. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.aar.sha256 +1 -0
  16. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.aar.sha512 +1 -0
  17. package/local-maven-repo/expo/modules/audio/expo.modules.audio/{0.4.4/expo.modules.audio-0.4.4.module → 0.4.6/expo.modules.audio-0.4.6.module} +22 -22
  18. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.module.md5 +1 -0
  19. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.module.sha1 +1 -0
  20. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.module.sha256 +1 -0
  21. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.module.sha512 +1 -0
  22. package/local-maven-repo/expo/modules/audio/expo.modules.audio/{0.4.4/expo.modules.audio-0.4.4.pom → 0.4.6/expo.modules.audio-0.4.6.pom} +1 -1
  23. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.pom.md5 +1 -0
  24. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.pom.sha1 +1 -0
  25. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.pom.sha256 +1 -0
  26. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.6/expo.modules.audio-0.4.6.pom.sha512 +1 -0
  27. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml +4 -4
  28. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.md5 +1 -1
  29. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha1 +1 -1
  30. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha256 +1 -1
  31. package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha512 +1 -1
  32. package/package.json +3 -3
  33. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4-sources.jar +0 -0
  34. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4-sources.jar.md5 +0 -1
  35. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4-sources.jar.sha1 +0 -1
  36. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4-sources.jar.sha256 +0 -1
  37. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4-sources.jar.sha512 +0 -1
  38. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.aar +0 -0
  39. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.aar.md5 +0 -1
  40. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.aar.sha1 +0 -1
  41. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.aar.sha256 +0 -1
  42. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.aar.sha512 +0 -1
  43. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.module.md5 +0 -1
  44. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.module.sha1 +0 -1
  45. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.module.sha256 +0 -1
  46. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.module.sha512 +0 -1
  47. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.pom.md5 +0 -1
  48. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.pom.sha1 +0 -1
  49. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.pom.sha256 +0 -1
  50. package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.4/expo.modules.audio-0.4.4.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -10,6 +10,20 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 0.4.6 — 2025-06-04
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - [iOS] Support base64 strings as an audio source. ([#37031](https://github.com/expo/expo/pull/37031) by [@alanjhughes](https://github.com/alanjhughes))
18
+ - [iOS] Correctly add the http headers to the `AVURLAsset`. ([#37029](https://github.com/expo/expo/pull/37029) by [@alanjhughes](https://github.com/alanjhughes))
19
+
20
+ ## 0.4.5 — 2025-05-08
21
+
22
+ ### 🐛 Bug fixes
23
+
24
+ - [Android] Correctly handle recording URL's and local assets in production. ([#36737](https://github.com/expo/expo/pull/36737) by [@alanjhughes](https://github.com/alanjhughes))
25
+ - [Android] Run player updates on the main thread in the `audioFocusChangeListener`. ([#36957](https://github.com/expo/expo/pull/36957) by [@alanjhughes](https://github.com/alanjhughes))
26
+
13
27
  ## 0.4.4 — 2025-04-30
14
28
 
15
29
  _This version does not introduce any user-facing changes._
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'expo.modules.audio'
7
- version = '0.4.4'
7
+ version = '0.4.6'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.audio"
11
11
  defaultConfig {
12
12
  versionCode 1
13
- versionName "0.4.4"
13
+ versionName "0.4.6"
14
14
  }
15
15
 
16
16
  compileOptions {
@@ -1,6 +1,7 @@
1
1
  package expo.modules.audio
2
2
 
3
3
  import android.Manifest
4
+ import android.content.ContentResolver
4
5
  import android.content.Context
5
6
  import android.content.pm.PackageManager
6
7
  import android.media.AudioAttributes
@@ -10,6 +11,7 @@ import android.net.Uri
10
11
  import android.os.Build
11
12
  import android.util.Log
12
13
  import androidx.core.content.ContextCompat
14
+ import androidx.core.net.toUri
13
15
  import androidx.media3.common.C.CONTENT_TYPE_DASH
14
16
  import androidx.media3.common.C.CONTENT_TYPE_HLS
15
17
  import androidx.media3.common.C.CONTENT_TYPE_OTHER
@@ -37,7 +39,6 @@ import kotlinx.coroutines.runBlocking
37
39
  import okhttp3.OkHttpClient
38
40
  import java.io.File
39
41
  import kotlin.math.min
40
- import androidx.core.net.toUri
41
42
 
42
43
  @androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class)
43
44
  class AudioModule : Module() {
@@ -62,7 +63,9 @@ class AudioModule : Module() {
62
63
  AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> {
63
64
  focusAcquired = false
64
65
  players.values.forEach {
65
- it.player.pause()
66
+ runOnMain {
67
+ it.player.pause()
68
+ }
66
69
  }
67
70
  }
68
71
 
@@ -70,7 +73,9 @@ class AudioModule : Module() {
70
73
  focusAcquired = false
71
74
  if (interruptionMode == InterruptionMode.DUCK_OTHERS) {
72
75
  players.values.forEach {
73
- it.player.volume /= 2f
76
+ runOnMain {
77
+ it.player.volume /= 2f
78
+ }
74
79
  }
75
80
  }
76
81
  }
@@ -146,7 +151,7 @@ class AudioModule : Module() {
146
151
  AsyncFunction("setIsAudioActiveAsync") { enabled: Boolean ->
147
152
  audioEnabled = enabled
148
153
  if (!enabled) {
149
- appContext.mainQueue.launch {
154
+ runOnMain {
150
155
  players.values.forEach {
151
156
  if (it.player.isPlaying) {
152
157
  it.player.pause()
@@ -401,7 +406,9 @@ class AudioModule : Module() {
401
406
  }
402
407
 
403
408
  Property("uri") { ref ->
404
- ref.filePath
409
+ ref.filePath?.let {
410
+ Uri.fromFile(File(it)).toString()
411
+ } ?: ""
405
412
  }
406
413
 
407
414
  Property("isRecording") { ref ->
@@ -456,35 +463,44 @@ class AudioModule : Module() {
456
463
  }
457
464
  }
458
465
 
459
- private fun createMediaItem(source: AudioSource?): MediaSource? = source?.uri?.let { uri ->
460
- val factory = createDataSourceFactory(source)
461
- val sourceUri = if (Util.isLocalFileUri(uri.toUri())) {
462
- Uri.fromFile(File(source.uri))
463
- } else {
464
- source.uri.toUri()
466
+ private fun createMediaItem(source: AudioSource?): MediaSource? = source?.uri?.let { uriString ->
467
+ val uri = uriString.toUri()
468
+ val mediaItem = when (uri.scheme) {
469
+ null -> MediaItem.fromUri(getRawResourceURI(uriString))
470
+ else -> MediaItem.fromUri(uri)
465
471
  }
466
- val item = MediaItem.fromUri(sourceUri)
467
- buildMediaSourceFactory(factory, item)
468
- }
469
472
 
470
- private fun createDataSourceFactory(audioSource: AudioSource): DataSource.Factory {
471
- val uri = if (Util.isLocalFileUri(Uri.parse(audioSource.uri))) {
472
- Uri.fromFile(File(audioSource.uri))
473
- } else {
474
- Uri.parse(audioSource.uri)
473
+ val factory = when (uri.scheme) {
474
+ "http", "https" -> httpDataSourceFactory(source.headers)
475
+ else -> DefaultDataSource.Factory(context)
475
476
  }
476
- val isLocal = Util.isLocalFileUri(uri)
477
- return if (isLocal) {
478
- DefaultDataSource.Factory(context)
479
- } else {
480
- OkHttpDataSource.Factory(httpClient).apply {
481
- audioSource.headers?.let { headers ->
482
- setDefaultRequestProperties(headers)
483
- }
477
+ return buildMediaSourceFactory(factory, mediaItem)
478
+ }
479
+
480
+ private fun httpDataSourceFactory(headers: Map<String, String>?): DataSource.Factory {
481
+ return OkHttpDataSource.Factory(httpClient).apply {
482
+ headers?.let { headers ->
483
+ setDefaultRequestProperties(headers)
484
484
  }
485
485
  }
486
486
  }
487
487
 
488
+ private fun getRawResourceURI(file: String): Uri {
489
+ val resId = context.resources.getIdentifier(file, "raw", context.packageName)
490
+
491
+ return when {
492
+ resId == 0 ->
493
+ Uri.fromFile(File(file))
494
+ else ->
495
+ Uri.Builder()
496
+ .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
497
+ .authority(context.packageName)
498
+ .appendPath("raw")
499
+ .appendPath(file)
500
+ .build()
501
+ }
502
+ }
503
+
488
504
  private fun updatePlaySoundThroughEarpiece(playThroughEarpiece: Boolean) {
489
505
  audioManager.mode = if (playThroughEarpiece) AudioManager.MODE_IN_COMMUNICATION else AudioManager.MODE_NORMAL
490
506
  audioManager.setSpeakerphoneOn(!playThroughEarpiece)
@@ -142,9 +142,10 @@ class AudioRecorder(
142
142
 
143
143
  val filename = "recording-${UUID.randomUUID()}${options.extension}"
144
144
  try {
145
- val directory = File(context.cacheDir.toString() + File.separator + "Audio")
145
+ val directory = File(context.cacheDir, "Audio")
146
146
  ensureDirExists(directory)
147
- filePath = "$directory${File.separator}$filename"
147
+ val file = File(directory, filename)
148
+ filePath = file.absolutePath
148
149
  } catch (e: IOException) {
149
150
  // This only occurs in the case that the scoped path is not in this experience's scope,
150
151
  // which is never true.
@@ -169,7 +170,10 @@ class AudioRecorder(
169
170
  getAudioRecorderLevels()?.let {
170
171
  putInt("metering", it)
171
172
  }
172
- putString("url", filePath)
173
+ filePath?.let {
174
+ val path = Uri.fromFile(File(it)).toString()
175
+ putString("url", path)
176
+ }
173
177
  }
174
178
  } else {
175
179
  Bundle().apply {
@@ -8,7 +8,7 @@
8
8
  "publication": {
9
9
  "groupId": "expo.modules.audio",
10
10
  "artifactId": "expo.modules.audio",
11
- "version": "0.4.4",
11
+ "version": "0.4.6",
12
12
  "repository": "local-maven-repo"
13
13
  }
14
14
  }
@@ -85,7 +85,18 @@ struct AudioUtils {
85
85
 
86
86
  static func createAVPlayer(from source: AudioSource?) -> AVPlayer {
87
87
  if let source, let url = source.uri {
88
- let asset = AVURLAsset(url: url, options: source.headers)
88
+ let finalUrl = if url.isBase64Audio {
89
+ handleBase64Asset(base64String: url.absoluteString) ?? url
90
+ } else {
91
+ url
92
+ }
93
+
94
+ var options: [String: Any]?
95
+ if let headers = source.headers {
96
+ options = ["AVURLAssetHTTPHeaderFieldsKey": headers]
97
+ }
98
+
99
+ let asset = AVURLAsset(url: finalUrl, options: options)
89
100
  let item = AVPlayerItem(asset: asset)
90
101
  return AVPlayer(playerItem: item)
91
102
  }
@@ -96,7 +107,18 @@ struct AudioUtils {
96
107
  guard let source, let url = source.uri else {
97
108
  return nil
98
109
  }
99
- let asset = AVURLAsset(url: url, options: source.headers)
110
+ let finalUrl = if url.isBase64Audio {
111
+ handleBase64Asset(base64String: url.absoluteString) ?? url
112
+ } else {
113
+ url
114
+ }
115
+
116
+ var options: [String: Any]?
117
+ if let headers = source.headers {
118
+ options = ["AVURLAssetHTTPHeaderFieldsKey": headers]
119
+ }
120
+
121
+ let asset = AVURLAsset(url: finalUrl, options: options)
100
122
  return AVPlayerItem(asset: asset)
101
123
  }
102
124
 
@@ -133,6 +155,38 @@ struct AudioUtils {
133
155
  return settings
134
156
  }
135
157
 
158
+ private static func handleBase64Asset(base64String: String) -> URL? {
159
+ let components = base64String.components(separatedBy: ",")
160
+ guard components.count == 2 else {
161
+ return nil
162
+ }
163
+ let mimeType = components[0].components(separatedBy: ";")[0].components(separatedBy: ":")[1]
164
+ let base64Data = components[1]
165
+
166
+ guard let data = Data(base64Encoded: base64Data, options: .ignoreUnknownCharacters) else {
167
+ return nil
168
+ }
169
+
170
+ let fileExtension = getFileExtension(for: mimeType)
171
+ let tempDirectory = FileManager.default.temporaryDirectory
172
+ let fileName = UUID().uuidString + "." + fileExtension
173
+ let fileURL = tempDirectory.appendingPathComponent(fileName)
174
+
175
+ do {
176
+ try data.write(to: fileURL)
177
+ return fileURL
178
+ } catch {
179
+ return nil
180
+ }
181
+ }
182
+
183
+ static func getFileExtension(for mimeType: String) -> String {
184
+ if let utType = UTType(mimeType: mimeType) {
185
+ return utType.preferredFilenameExtension ?? "dat"
186
+ }
187
+ return "dat"
188
+ }
189
+
136
190
  private static func createRecordingUrl(from dir: URL, with options: RecordingOptions) -> URL {
137
191
  let directoryPath = dir.appendingPathComponent("ExpoAudio")
138
192
  FileSystemUtilities.ensureDirExists(at: directoryPath)
@@ -160,3 +214,9 @@ struct AudioUtils {
160
214
  }
161
215
  }
162
216
  }
217
+
218
+ private extension URL {
219
+ var isBase64Audio: Bool {
220
+ return absoluteString.hasPrefix("data:audio/")
221
+ }
222
+ }
@@ -0,0 +1 @@
1
+ 5b83253199eda38e1c38648763d0a597739ea6b68cc8d820f0adfc58005d7d11
@@ -0,0 +1 @@
1
+ 653271097295e8ddcbec1387083547f51a4e602bc937a680506f2757179369078a817c64d8a5eee6827995487c77f722d11c87dff1afaf87a9a655755e8fcf86
@@ -0,0 +1 @@
1
+ 5789c77be1c3f39079dd124df9c6b5a6ea4c9f4e
@@ -0,0 +1 @@
1
+ ccffe7bc9275fb16f87f5ccd7f3e8a7c0d645c051cd8dcf7f93e541f1da6c90d
@@ -0,0 +1 @@
1
+ 4822e292172989e76129ff372ba1fea73fe20d90c659ee81adaf5e1a5d79841e7634f8482d86e5c52f4bf3b821161de8c6b5882306e4df05e8644488633e5c32
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.audio",
5
5
  "module": "expo.modules.audio",
6
- "version": "0.4.4",
6
+ "version": "0.4.6",
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-0.4.4.aar",
28
- "url": "expo.modules.audio-0.4.4.aar",
29
- "size": 184916,
30
- "sha512": "a0b3065f75bfe4f2b39cb9ebd0d8c1852643f94409f94560c2b33f033fc3d4f07da0406bbe2a277ac6f110fe7e2de292d07695487513234a82ad102e015802e9",
31
- "sha256": "b454e054c8b967eba2af8fa695eb3e288a5ab03855945a5b904267a81e814e91",
32
- "sha1": "afba18ce78ec8af3fd7e1f057c7af8de0409ec37",
33
- "md5": "f9e65a4d3c93f2b651a29f6d1c9a25e1"
27
+ "name": "expo.modules.audio-0.4.6.aar",
28
+ "url": "expo.modules.audio-0.4.6.aar",
29
+ "size": 185860,
30
+ "sha512": "4822e292172989e76129ff372ba1fea73fe20d90c659ee81adaf5e1a5d79841e7634f8482d86e5c52f4bf3b821161de8c6b5882306e4df05e8644488633e5c32",
31
+ "sha256": "ccffe7bc9275fb16f87f5ccd7f3e8a7c0d645c051cd8dcf7f93e541f1da6c90d",
32
+ "sha1": "5789c77be1c3f39079dd124df9c6b5a6ea4c9f4e",
33
+ "md5": "2f81113a82d032d22895e4cc1113653e"
34
34
  }
35
35
  ]
36
36
  },
@@ -95,13 +95,13 @@
95
95
  ],
96
96
  "files": [
97
97
  {
98
- "name": "expo.modules.audio-0.4.4.aar",
99
- "url": "expo.modules.audio-0.4.4.aar",
100
- "size": 184916,
101
- "sha512": "a0b3065f75bfe4f2b39cb9ebd0d8c1852643f94409f94560c2b33f033fc3d4f07da0406bbe2a277ac6f110fe7e2de292d07695487513234a82ad102e015802e9",
102
- "sha256": "b454e054c8b967eba2af8fa695eb3e288a5ab03855945a5b904267a81e814e91",
103
- "sha1": "afba18ce78ec8af3fd7e1f057c7af8de0409ec37",
104
- "md5": "f9e65a4d3c93f2b651a29f6d1c9a25e1"
98
+ "name": "expo.modules.audio-0.4.6.aar",
99
+ "url": "expo.modules.audio-0.4.6.aar",
100
+ "size": 185860,
101
+ "sha512": "4822e292172989e76129ff372ba1fea73fe20d90c659ee81adaf5e1a5d79841e7634f8482d86e5c52f4bf3b821161de8c6b5882306e4df05e8644488633e5c32",
102
+ "sha256": "ccffe7bc9275fb16f87f5ccd7f3e8a7c0d645c051cd8dcf7f93e541f1da6c90d",
103
+ "sha1": "5789c77be1c3f39079dd124df9c6b5a6ea4c9f4e",
104
+ "md5": "2f81113a82d032d22895e4cc1113653e"
105
105
  }
106
106
  ]
107
107
  },
@@ -115,13 +115,13 @@
115
115
  },
116
116
  "files": [
117
117
  {
118
- "name": "expo.modules.audio-0.4.4-sources.jar",
119
- "url": "expo.modules.audio-0.4.4-sources.jar",
120
- "size": 11770,
121
- "sha512": "62186f8682284e739c2bad57001ab13df39e5aeaf2ba3de1414ab6022706b6a2aa27d885e0e3461ec8d9046432a99f7768aaf543254a813e64857e20afb8f92d",
122
- "sha256": "d9806afca725f0656507326bc8b0d7db75e75ccd2ce4e1ea626209cef8909756",
123
- "sha1": "f759ea485190b58c8e59734d263dccab32dd7110",
124
- "md5": "2fb5759d28c945fe08c1530cb736aaf4"
118
+ "name": "expo.modules.audio-0.4.6-sources.jar",
119
+ "url": "expo.modules.audio-0.4.6-sources.jar",
120
+ "size": 11949,
121
+ "sha512": "653271097295e8ddcbec1387083547f51a4e602bc937a680506f2757179369078a817c64d8a5eee6827995487c77f722d11c87dff1afaf87a9a655755e8fcf86",
122
+ "sha256": "5b83253199eda38e1c38648763d0a597739ea6b68cc8d820f0adfc58005d7d11",
123
+ "sha1": "2926300234a91dc3a7079b6e01968c49fd4e8be9",
124
+ "md5": "16b12ce1f64a92648c621d933188ef6b"
125
125
  }
126
126
  ]
127
127
  }
@@ -0,0 +1 @@
1
+ 71d01e107d8760fed3509b4e3a069efbc6352a782cf0ead8a0abf3ff409b8a44
@@ -0,0 +1 @@
1
+ b9bbc0248d57b3c94cab7a852c1bdb4ef6cf9f876138e6801e3f42f21035981fc0d1ae594dad3e9b58b1972f8679f106818632cfda20842d35886fd2e48528d8
@@ -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>0.4.4</version>
12
+ <version>0.4.6</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
+ f77ccbbe01ae9c8e5c5dbce5bdf98e278213d507
@@ -0,0 +1 @@
1
+ dc0a0dd06bc0729b1f9d9447f1af8fb1e11407c4c8ad1142a51d23597c90e34e
@@ -0,0 +1 @@
1
+ 1e9f0635a1eada19b39a6709ad1e4f7d596164fa14a2bb08ab6692dec92ef4f95d93953c7dbf276ed570b1436907f2fd1f2e2bb63af5989edf1d6a3da2e4df9c
@@ -3,11 +3,11 @@
3
3
  <groupId>expo.modules.audio</groupId>
4
4
  <artifactId>expo.modules.audio</artifactId>
5
5
  <versioning>
6
- <latest>0.4.4</latest>
7
- <release>0.4.4</release>
6
+ <latest>0.4.6</latest>
7
+ <release>0.4.6</release>
8
8
  <versions>
9
- <version>0.4.4</version>
9
+ <version>0.4.6</version>
10
10
  </versions>
11
- <lastUpdated>20250430211501</lastUpdated>
11
+ <lastUpdated>20250604230416</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- cbf2f3d9f568453dfe1ac816538cee99
1
+ 5e38b847a67dfcd99daa36620a7e6bd8
@@ -1 +1 @@
1
- c148945b4964211fe7d2be5ff555e92a0bff8e2b
1
+ 2cf3df2657ee8884b5aec968f5b95702a5892aa9
@@ -1 +1 @@
1
- ef01465e31771ebbdad28ba7a8820ab67368306b1170379ae399e9be6733b621
1
+ bbfb4512ca242ccbd6c5514a5c743c3f51ef1b659c1142f2456d39f82c07f938
@@ -1 +1 @@
1
- da22bdbcb1f3d95a6f9657f9adc79dc0d7914d41615b44787f40d81d8b60d7460ae1456b3d94bbd7c3aa5b7afbdd1b6a84ba633df565496c495d615e50119fd8
1
+ 72e5ed48410a3e9b6154846f3d5428f94b9da3ea28894f5200e2990d104f9d12f449826139bbf4d83f3ebe644234f597a4d80c92b4b5f00494138850e29590f3
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "expo-audio",
3
3
  "title": "Expo Audio",
4
- "version": "0.4.4",
4
+ "version": "0.4.6",
5
5
  "description": "A cross-platform audio library for React Native and Expo apps.",
6
6
  "main": "build/index.js",
7
7
  "types": "build/index.d.ts",
@@ -33,12 +33,12 @@
33
33
  "license": "MIT",
34
34
  "dependencies": {},
35
35
  "devDependencies": {
36
- "expo-module-scripts": "^4.1.6"
36
+ "expo-module-scripts": "^4.1.7"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "expo": "*",
40
40
  "react": "*",
41
41
  "react-native": "*"
42
42
  },
43
- "gitHead": "84355076bc31a356aa3d23257f387f221885f53d"
43
+ "gitHead": "7638c800b57fe78f57cc7f129022f58e84a523c5"
44
44
  }
@@ -1 +0,0 @@
1
- d9806afca725f0656507326bc8b0d7db75e75ccd2ce4e1ea626209cef8909756
@@ -1 +0,0 @@
1
- 62186f8682284e739c2bad57001ab13df39e5aeaf2ba3de1414ab6022706b6a2aa27d885e0e3461ec8d9046432a99f7768aaf543254a813e64857e20afb8f92d
@@ -1 +0,0 @@
1
- afba18ce78ec8af3fd7e1f057c7af8de0409ec37
@@ -1 +0,0 @@
1
- b454e054c8b967eba2af8fa695eb3e288a5ab03855945a5b904267a81e814e91
@@ -1 +0,0 @@
1
- a0b3065f75bfe4f2b39cb9ebd0d8c1852643f94409f94560c2b33f033fc3d4f07da0406bbe2a277ac6f110fe7e2de292d07695487513234a82ad102e015802e9
@@ -1 +0,0 @@
1
- 2c89ab78c80717e07f02d5276dfc693af1ccf71f
@@ -1 +0,0 @@
1
- 0c1e5728a99eb34cfa960cef3473b89d445653a6c9eadc45bf3753b58bb75d45
@@ -1 +0,0 @@
1
- 8c67acb6841487e2ab929ebb5a3cbafcc1c56e76501803b3ecbd1257f4650f5fb9080a5d6037b34d44791db4526a7b534d811ee2932bc59efca637692540f2e8
@@ -1 +0,0 @@
1
- 63e829bffdfd96f631819f25f1e816b9c49bbd17
@@ -1 +0,0 @@
1
- 75dfa1dfcf21b40b838bb271f7c25d1a2c6f91e1ea47afa9fadecfd20b2df6bf
@@ -1 +0,0 @@
1
- 341004398d6e8308047b53ca98986843e40be231583cc7a29bf3e1dec8853aabc01b1e006b704ec110612fc0cd6e850cd4613f79a59372d3e50d280e70f09b8d