expo-audio 56.0.5 → 56.0.7
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 +11 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/audio/service/AudioControlsService.kt +14 -2
- package/android/src/main/java/expo/modules/audio/service/MetadataInjectingPlayer.kt +93 -0
- package/expo-module.config.json +1 -1
- package/ios/AudioPlayer.swift +2 -2
- package/ios/AudioPlaylist.swift +2 -2
- package/ios/AudioRecorder.swift +4 -4
- package/ios/AudioStream.swift +2 -2
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{56.0.5/expo.modules.audio-56.0.5-sources.jar → 56.0.7/expo.modules.audio-56.0.7-sources.jar} +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{56.0.5/expo.modules.audio-56.0.5.aar → 56.0.7/expo.modules.audio-56.0.7.aar} +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{56.0.5/expo.modules.audio-56.0.5.module → 56.0.7/expo.modules.audio-56.0.7.module} +22 -22
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.module.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{56.0.5/expo.modules.audio-56.0.5.pom → 56.0.7/expo.modules.audio-56.0.7.pom} +1 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.7/expo.modules.audio-56.0.7.pom.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml +4 -4
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/maven-metadata.xml.sha512 +1 -1
- package/package.json +4 -4
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.module.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/56.0.5/expo.modules.audio-56.0.5.pom.sha512 +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,16 @@
|
|
|
10
10
|
|
|
11
11
|
### 💡 Others
|
|
12
12
|
|
|
13
|
+
## 56.0.7 — 2026-05-15
|
|
14
|
+
|
|
15
|
+
### 💡 Others
|
|
16
|
+
|
|
17
|
+
- Migrated to the single-payload `SharedObject.emit` API. ([#45596](https://github.com/expo/expo/pull/45596) by [@tsapeta](https://github.com/tsapeta))
|
|
18
|
+
|
|
19
|
+
## 56.0.6 — 2026-05-13
|
|
20
|
+
|
|
21
|
+
_This version does not introduce any user-facing changes._
|
|
22
|
+
|
|
13
23
|
## 56.0.5 — 2026-05-13
|
|
14
24
|
|
|
15
25
|
### 💡 Others
|
|
@@ -52,6 +62,7 @@ _This version does not introduce any user-facing changes._
|
|
|
52
62
|
- [iOS] Prevent stale lock screen artwork updates from crashing or overwriting newer metadata. ([#44498](https://github.com/expo/expo/pull/44498) by [@kotadd](https://github.com/kotadd))
|
|
53
63
|
- [iOS] Fix playback progress continuing after pause by setting correct playback rate in now playing info. ([#44974](https://github.com/expo/expo/pull/44974) by [@JstUsername](https://github.com/JstUsername))
|
|
54
64
|
- [Android] Remove `RECORD_AUDIO` from the manifest so `recordAudioAndroid` depends on the plugin. ([#45131](https://github.com/expo/expo/pull/45131) by [@alanjhughes](https://github.com/alanjhughes))
|
|
65
|
+
- [Android] Fix pixelated lock screen artwork on Android 13+ by setting `artworkUri` on the session's `MediaMetadata`. ([#44953](https://github.com/expo/expo/pull/44953) by [@radko93](https://github.com/radko93))
|
|
55
66
|
|
|
56
67
|
### 💡 Others
|
|
57
68
|
|
package/android/build.gradle
CHANGED
|
@@ -4,13 +4,13 @@ plugins {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
group = 'expo.modules.audio'
|
|
7
|
-
version = '56.0.
|
|
7
|
+
version = '56.0.7'
|
|
8
8
|
|
|
9
9
|
android {
|
|
10
10
|
namespace "expo.modules.audio"
|
|
11
11
|
defaultConfig {
|
|
12
12
|
versionCode 1
|
|
13
|
-
versionName "56.0.
|
|
13
|
+
versionName "56.0.7"
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
compileOptions {
|
|
@@ -42,6 +42,7 @@ class AudioControlsService : MediaSessionService() {
|
|
|
42
42
|
private lateinit var audioManager: AudioManager
|
|
43
43
|
private val binder = AudioPlaybackServiceBinder(this)
|
|
44
44
|
private var mediaSession: MediaSession? = null
|
|
45
|
+
private var sessionMetadataPlayer: MetadataInjectingPlayer? = null
|
|
45
46
|
private var currentMetadata: Metadata? = null
|
|
46
47
|
private var currentPlayer: AudioPlayer? = null
|
|
47
48
|
private var currentOptions: AudioLockScreenOptions? = null
|
|
@@ -323,10 +324,13 @@ class AudioControlsService : MediaSessionService() {
|
|
|
323
324
|
|
|
324
325
|
if (player != null) {
|
|
325
326
|
mediaSession?.release()
|
|
327
|
+
sessionMetadataPlayer = null
|
|
326
328
|
|
|
327
329
|
appContext?.mainQueue?.launch {
|
|
328
330
|
val context = appContext?.reactContext ?: return@launch
|
|
329
|
-
val sessionPlayer = resolveSessionPlayer(player, options)
|
|
331
|
+
val sessionPlayer = MetadataInjectingPlayer(resolveSessionPlayer(player, options)).apply {
|
|
332
|
+
updateMetadata(metadata)
|
|
333
|
+
}
|
|
330
334
|
val session = MediaSession.Builder(context, sessionPlayer)
|
|
331
335
|
.setCallback(AudioMediaSessionCallback())
|
|
332
336
|
.build()
|
|
@@ -337,6 +341,7 @@ class AudioControlsService : MediaSessionService() {
|
|
|
337
341
|
|
|
338
342
|
addSession(session)
|
|
339
343
|
mediaSession = session
|
|
344
|
+
sessionMetadataPlayer = sessionPlayer
|
|
340
345
|
|
|
341
346
|
updateSessionCustomLayout(player.ref.isPlaying)
|
|
342
347
|
|
|
@@ -357,6 +362,7 @@ class AudioControlsService : MediaSessionService() {
|
|
|
357
362
|
return
|
|
358
363
|
}
|
|
359
364
|
currentMetadata = metadata
|
|
365
|
+
sessionMetadataPlayer?.updateMetadata(metadata)
|
|
360
366
|
currentMetadata?.artworkUrl?.let {
|
|
361
367
|
loadArtworkFromUrl(it) { bitmap ->
|
|
362
368
|
currentArtwork = bitmap
|
|
@@ -372,6 +378,7 @@ class AudioControlsService : MediaSessionService() {
|
|
|
372
378
|
currentMetadata = null
|
|
373
379
|
mediaSession?.release()
|
|
374
380
|
mediaSession = null
|
|
381
|
+
sessionMetadataPlayer = null
|
|
375
382
|
currentPlayer?.assignBasicMediaSession()
|
|
376
383
|
stopForeground(STOP_FOREGROUND_REMOVE)
|
|
377
384
|
}
|
|
@@ -399,9 +406,12 @@ class AudioControlsService : MediaSessionService() {
|
|
|
399
406
|
currentOptions = options
|
|
400
407
|
|
|
401
408
|
mediaSession?.release()
|
|
409
|
+
sessionMetadataPlayer = null
|
|
402
410
|
appContext?.mainQueue?.launch {
|
|
403
411
|
val context = appContext?.reactContext ?: return@launch
|
|
404
|
-
val sessionPlayer = resolveSessionPlayer(player, options)
|
|
412
|
+
val sessionPlayer = MetadataInjectingPlayer(resolveSessionPlayer(player, options)).apply {
|
|
413
|
+
updateMetadata(metadata)
|
|
414
|
+
}
|
|
405
415
|
val session = MediaSession.Builder(context, sessionPlayer)
|
|
406
416
|
.setCallback(AudioMediaSessionCallback())
|
|
407
417
|
.build()
|
|
@@ -411,6 +421,7 @@ class AudioControlsService : MediaSessionService() {
|
|
|
411
421
|
|
|
412
422
|
addSession(session)
|
|
413
423
|
mediaSession = session
|
|
424
|
+
sessionMetadataPlayer = sessionPlayer
|
|
414
425
|
|
|
415
426
|
updateSessionCustomLayout(player.ref.isPlaying)
|
|
416
427
|
postOrStartForegroundNotification(startInForeground = false)
|
|
@@ -468,6 +479,7 @@ class AudioControlsService : MediaSessionService() {
|
|
|
468
479
|
scope.cancel()
|
|
469
480
|
mediaSession?.release()
|
|
470
481
|
mediaSession = null
|
|
482
|
+
sessionMetadataPlayer = null
|
|
471
483
|
currentPlayer = null
|
|
472
484
|
currentMetadata = null
|
|
473
485
|
currentOptions = null
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
package expo.modules.audio.service
|
|
2
|
+
|
|
3
|
+
import android.os.Handler
|
|
4
|
+
import android.os.Looper
|
|
5
|
+
import androidx.core.net.toUri
|
|
6
|
+
import androidx.media3.common.FlagSet
|
|
7
|
+
import androidx.media3.common.ForwardingPlayer
|
|
8
|
+
import androidx.media3.common.MediaMetadata
|
|
9
|
+
import androidx.media3.common.Player
|
|
10
|
+
import androidx.media3.common.util.UnstableApi
|
|
11
|
+
import expo.modules.audio.Metadata
|
|
12
|
+
import java.util.IdentityHashMap
|
|
13
|
+
|
|
14
|
+
// MediaSession reads artwork from Player.mediaMetadata, but expo-audio lock-screen metadata can
|
|
15
|
+
// change independently of the underlying MediaItem. This wrapper lets the session observe those
|
|
16
|
+
// metadata updates without replacing the active media item on the real ExoPlayer instance.
|
|
17
|
+
@UnstableApi
|
|
18
|
+
internal class MetadataInjectingPlayer(
|
|
19
|
+
player: Player
|
|
20
|
+
) : ForwardingPlayer(player) {
|
|
21
|
+
private val handler = Handler(applicationLooper)
|
|
22
|
+
private val listeners = IdentityHashMap<Player.Listener, Player.Listener>()
|
|
23
|
+
private var injectedMetadata: Metadata? = null
|
|
24
|
+
|
|
25
|
+
override fun addListener(listener: Player.Listener) {
|
|
26
|
+
val forwardingListener = synchronized(listeners) {
|
|
27
|
+
listeners.getOrPut(listener) { MetadataForwardingListener(listener) }
|
|
28
|
+
}
|
|
29
|
+
super.addListener(forwardingListener)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
override fun removeListener(listener: Player.Listener) {
|
|
33
|
+
val forwardingListener = synchronized(listeners) {
|
|
34
|
+
listeners.remove(listener)
|
|
35
|
+
}
|
|
36
|
+
super.removeListener(forwardingListener ?: listener)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
override fun getMediaMetadata(): MediaMetadata {
|
|
40
|
+
val metadata = injectedMetadata
|
|
41
|
+
return super.getMediaMetadata()
|
|
42
|
+
.buildUpon()
|
|
43
|
+
.setTitle(metadata?.title)
|
|
44
|
+
.setArtist(metadata?.artist)
|
|
45
|
+
.setAlbumTitle(metadata?.albumTitle)
|
|
46
|
+
.setArtworkUri(metadata?.artworkUrl?.toString()?.toUri())
|
|
47
|
+
.setArtworkData(null, null)
|
|
48
|
+
.build()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
fun updateMetadata(metadata: Metadata?) {
|
|
52
|
+
if (Looper.myLooper() != applicationLooper) {
|
|
53
|
+
handler.post { updateMetadata(metadata) }
|
|
54
|
+
return
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
val previousMetadata = mediaMetadata
|
|
58
|
+
injectedMetadata = metadata
|
|
59
|
+
val newMetadata = mediaMetadata
|
|
60
|
+
|
|
61
|
+
if (previousMetadata == newMetadata) {
|
|
62
|
+
return
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
val events = Player.Events(
|
|
66
|
+
FlagSet.Builder()
|
|
67
|
+
.add(Player.EVENT_MEDIA_METADATA_CHANGED)
|
|
68
|
+
.build()
|
|
69
|
+
)
|
|
70
|
+
val currentListeners = synchronized(listeners) {
|
|
71
|
+
listeners.keys.toList()
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
currentListeners.forEach {
|
|
75
|
+
it.onMediaMetadataChanged(newMetadata)
|
|
76
|
+
}
|
|
77
|
+
currentListeners.forEach {
|
|
78
|
+
it.onEvents(this, events)
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private inner class MetadataForwardingListener(
|
|
83
|
+
private val listener: Player.Listener
|
|
84
|
+
) : Player.Listener by listener {
|
|
85
|
+
override fun onMediaMetadataChanged(mediaMetadata: MediaMetadata) {
|
|
86
|
+
listener.onMediaMetadataChanged(this@MetadataInjectingPlayer.mediaMetadata)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
override fun onEvents(player: Player, events: Player.Events) {
|
|
90
|
+
listener.onEvents(this@MetadataInjectingPlayer, events)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
package/expo-module.config.json
CHANGED
package/ios/AudioPlayer.swift
CHANGED
|
@@ -169,7 +169,7 @@ public class AudioPlayer: SharedRef<AVPlayer>, Playable {
|
|
|
169
169
|
arguments.merge(dict) { _, new in
|
|
170
170
|
new
|
|
171
171
|
}
|
|
172
|
-
self.emit(event: AudioConstants.playbackStatus,
|
|
172
|
+
self.emit(event: AudioConstants.playbackStatus, payload: arguments)
|
|
173
173
|
|
|
174
174
|
if isActiveForLockScreen {
|
|
175
175
|
MediaController.shared.updateNowPlayingInfo(for: self)
|
|
@@ -390,7 +390,7 @@ public class AudioPlayer: SharedRef<AVPlayer>, Playable {
|
|
|
390
390
|
return ["frames": channelData]
|
|
391
391
|
}
|
|
392
392
|
|
|
393
|
-
self.emit(event: AudioConstants.audioSample,
|
|
393
|
+
self.emit(event: AudioConstants.audioSample, payload: [
|
|
394
394
|
"channels": channels,
|
|
395
395
|
"timestamp": timestamp
|
|
396
396
|
])
|
package/ios/AudioPlaylist.swift
CHANGED
|
@@ -238,7 +238,7 @@ public class AudioPlaylist: SharedRef<AVQueuePlayer>, Playable {
|
|
|
238
238
|
func updateStatus(with dict: [String: Any]) {
|
|
239
239
|
var arguments = currentStatus()
|
|
240
240
|
arguments.merge(dict) { _, new in new }
|
|
241
|
-
self.emit(event: PlaylistConstants.playlistStatusUpdate,
|
|
241
|
+
self.emit(event: PlaylistConstants.playlistStatusUpdate, payload: arguments)
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
private func validIndex(_ index: Int) -> Bool {
|
|
@@ -246,7 +246,7 @@ public class AudioPlaylist: SharedRef<AVQueuePlayer>, Playable {
|
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
private func emitTrackChanged(previousIndex: Int, currentIndex: Int) {
|
|
249
|
-
self.emit(event: PlaylistConstants.trackChanged,
|
|
249
|
+
self.emit(event: PlaylistConstants.trackChanged, payload: [
|
|
250
250
|
"previousIndex": previousIndex,
|
|
251
251
|
"currentIndex": currentIndex
|
|
252
252
|
])
|
package/ios/AudioRecorder.swift
CHANGED
|
@@ -183,7 +183,7 @@ class AudioRecorder: SharedRef<AVAudioRecorder>, RecordingResultHandler {
|
|
|
183
183
|
if let options = currentOptions {
|
|
184
184
|
do {
|
|
185
185
|
try prepare(options: options, sessionOptions: currentSessionOptions)
|
|
186
|
-
emit(event: recordingStatus,
|
|
186
|
+
emit(event: recordingStatus, payload: [
|
|
187
187
|
"id": id,
|
|
188
188
|
"isFinished": true,
|
|
189
189
|
"hasError": false,
|
|
@@ -196,7 +196,7 @@ class AudioRecorder: SharedRef<AVAudioRecorder>, RecordingResultHandler {
|
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
currentState = .error
|
|
199
|
-
emit(event: recordingStatus,
|
|
199
|
+
emit(event: recordingStatus, payload: [
|
|
200
200
|
"id": id,
|
|
201
201
|
"isFinished": true,
|
|
202
202
|
"hasError": true,
|
|
@@ -211,7 +211,7 @@ class AudioRecorder: SharedRef<AVAudioRecorder>, RecordingResultHandler {
|
|
|
211
211
|
currentState = .stopped
|
|
212
212
|
resetDurationTracking()
|
|
213
213
|
|
|
214
|
-
emit(event: recordingStatus,
|
|
214
|
+
emit(event: recordingStatus, payload: [
|
|
215
215
|
"id": id,
|
|
216
216
|
"isFinished": true,
|
|
217
217
|
"hasError": false,
|
|
@@ -225,7 +225,7 @@ class AudioRecorder: SharedRef<AVAudioRecorder>, RecordingResultHandler {
|
|
|
225
225
|
currentState = .error
|
|
226
226
|
resetDurationTracking()
|
|
227
227
|
|
|
228
|
-
emit(event: recordingStatus,
|
|
228
|
+
emit(event: recordingStatus, payload: [
|
|
229
229
|
"id": id,
|
|
230
230
|
"isFinished": true,
|
|
231
231
|
"hasError": true,
|
package/ios/AudioStream.swift
CHANGED
|
@@ -155,7 +155,7 @@ class AudioStream: SharedObject {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
private func emitStatus() {
|
|
158
|
-
emit(event: AUDIO_STREAM_STATUS,
|
|
158
|
+
emit(event: AUDIO_STREAM_STATUS, payload: [
|
|
159
159
|
"isStreaming": isStreaming
|
|
160
160
|
])
|
|
161
161
|
}
|
|
@@ -180,7 +180,7 @@ class AudioStream: SharedObject {
|
|
|
180
180
|
return
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
emit(event: AUDIO_STREAM_BUFFER,
|
|
183
|
+
emit(event: AUDIO_STREAM_BUFFER, payload: [
|
|
184
184
|
"data": data,
|
|
185
185
|
"sampleRate": sampleRate,
|
|
186
186
|
"channels": channels,
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a3c377949421fc29921345ce1599e3b3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1b4401764106574ea2c8bf8b7eefaffdaff355b2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a49e45c8b6aa954203065b6eb5334a78a828af8d0b308a7528215f3b5b7c9adc
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
24cdc522afefdbcf66d3ffa87fed788e3b1de42c05b902108398ae9d933dcad5b5d73ddec0d2268f56c42e066c5faed980f1b2bc6cbb90b2fab11216c1c6dfd9
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0733d0e9a6d0554684c01629d7551fb4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
fe0b13166d91b26a86cd1d7a261363c448908259
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1cda01b9c67ceff57a2fcd690bf0c84f0e3f23c20c47304493567d3bc3ee7344
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ce050e9b7c63f9b616d8343c3c8e4333a83550de304ee72d38e2f28edaba30e1974bf361cbddd7ad8af6275f3ac6ac2daa485005a745a799de80f81883e72f1a
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "expo.modules.audio",
|
|
5
5
|
"module": "expo.modules.audio",
|
|
6
|
-
"version": "56.0.
|
|
6
|
+
"version": "56.0.7",
|
|
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-56.0.
|
|
28
|
-
"url": "expo.modules.audio-56.0.
|
|
29
|
-
"size":
|
|
30
|
-
"sha512": "
|
|
31
|
-
"sha256": "
|
|
32
|
-
"sha1": "
|
|
33
|
-
"md5": "
|
|
27
|
+
"name": "expo.modules.audio-56.0.7.aar",
|
|
28
|
+
"url": "expo.modules.audio-56.0.7.aar",
|
|
29
|
+
"size": 477850,
|
|
30
|
+
"sha512": "ce050e9b7c63f9b616d8343c3c8e4333a83550de304ee72d38e2f28edaba30e1974bf361cbddd7ad8af6275f3ac6ac2daa485005a745a799de80f81883e72f1a",
|
|
31
|
+
"sha256": "1cda01b9c67ceff57a2fcd690bf0c84f0e3f23c20c47304493567d3bc3ee7344",
|
|
32
|
+
"sha1": "fe0b13166d91b26a86cd1d7a261363c448908259",
|
|
33
|
+
"md5": "0733d0e9a6d0554684c01629d7551fb4"
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
},
|
|
@@ -137,13 +137,13 @@
|
|
|
137
137
|
],
|
|
138
138
|
"files": [
|
|
139
139
|
{
|
|
140
|
-
"name": "expo.modules.audio-56.0.
|
|
141
|
-
"url": "expo.modules.audio-56.0.
|
|
142
|
-
"size":
|
|
143
|
-
"sha512": "
|
|
144
|
-
"sha256": "
|
|
145
|
-
"sha1": "
|
|
146
|
-
"md5": "
|
|
140
|
+
"name": "expo.modules.audio-56.0.7.aar",
|
|
141
|
+
"url": "expo.modules.audio-56.0.7.aar",
|
|
142
|
+
"size": 477850,
|
|
143
|
+
"sha512": "ce050e9b7c63f9b616d8343c3c8e4333a83550de304ee72d38e2f28edaba30e1974bf361cbddd7ad8af6275f3ac6ac2daa485005a745a799de80f81883e72f1a",
|
|
144
|
+
"sha256": "1cda01b9c67ceff57a2fcd690bf0c84f0e3f23c20c47304493567d3bc3ee7344",
|
|
145
|
+
"sha1": "fe0b13166d91b26a86cd1d7a261363c448908259",
|
|
146
|
+
"md5": "0733d0e9a6d0554684c01629d7551fb4"
|
|
147
147
|
}
|
|
148
148
|
]
|
|
149
149
|
},
|
|
@@ -157,13 +157,13 @@
|
|
|
157
157
|
},
|
|
158
158
|
"files": [
|
|
159
159
|
{
|
|
160
|
-
"name": "expo.modules.audio-56.0.
|
|
161
|
-
"url": "expo.modules.audio-56.0.
|
|
162
|
-
"size":
|
|
163
|
-
"sha512": "
|
|
164
|
-
"sha256": "
|
|
165
|
-
"sha1": "
|
|
166
|
-
"md5": "
|
|
160
|
+
"name": "expo.modules.audio-56.0.7-sources.jar",
|
|
161
|
+
"url": "expo.modules.audio-56.0.7-sources.jar",
|
|
162
|
+
"size": 36988,
|
|
163
|
+
"sha512": "24cdc522afefdbcf66d3ffa87fed788e3b1de42c05b902108398ae9d933dcad5b5d73ddec0d2268f56c42e066c5faed980f1b2bc6cbb90b2fab11216c1c6dfd9",
|
|
164
|
+
"sha256": "a49e45c8b6aa954203065b6eb5334a78a828af8d0b308a7528215f3b5b7c9adc",
|
|
165
|
+
"sha1": "1b4401764106574ea2c8bf8b7eefaffdaff355b2",
|
|
166
|
+
"md5": "a3c377949421fc29921345ce1599e3b3"
|
|
167
167
|
}
|
|
168
168
|
]
|
|
169
169
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
38d6cfa4e62690bbc533c8a4b396b689
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0c7c60cdb0718af6f5da5f8b11810fae761afe86
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
e559255f1b71fd4219ce4be7bc2926b08a026ab286ad40ed79cf8b89882bbf64
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
57a72fd54149c7328dc9b8bcbcf435069103a9558b9614d41a438e95eb24014e4d4cdd1ce234412498aa117fe896d3cf33bca09751e9166f0a60d1086f5c2c20
|
|
@@ -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>56.0.
|
|
12
|
+
<version>56.0.7</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
|
+
eacf82f09c62dfe1d13e37bd4980d42a
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
775f02d247cfb2f554f362f4124c9af332ed1154
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
5c1feee02cc9ea509f53a19a4e351bf9b9164de3858a5bb00b7f8c61ca1cb86b
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d1e54b7729ca33c7dc472b5fa280bc11ccb8d35509e85854d7e1911f8a0d06bc17e67b8a91574904aff9fb886b8adc64254179ac8a313bdb98048e4da6bac8e0
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>expo.modules.audio</groupId>
|
|
4
4
|
<artifactId>expo.modules.audio</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>56.0.
|
|
7
|
-
<release>56.0.
|
|
6
|
+
<latest>56.0.7</latest>
|
|
7
|
+
<release>56.0.7</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>56.0.
|
|
9
|
+
<version>56.0.7</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20260515152456</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f491f1d7855560913067102ab64df484
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
9ecc87eb2ef9919d165eda149e41db51ad1595bd
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ea4b4d9c6a34d48d6b7c3fb10676c1fdf3097c6e63f26caeda62c80802697943
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4809b963da4dd057940247713f6689bc5f0cfb1f4d8da27774ea7de1deeb6541b5630e51022c8c7d10aca4c486f5c4a87ec06c1ae97a4e655348a72005fff872
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-audio",
|
|
3
3
|
"title": "Expo Audio",
|
|
4
|
-
"version": "56.0.
|
|
4
|
+
"version": "56.0.7",
|
|
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",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/react": "~19.2.0",
|
|
28
28
|
"@types/node": "^22.14.0",
|
|
29
|
-
"expo": "56.0.0-preview.
|
|
30
|
-
"expo-asset": "56.0.
|
|
29
|
+
"expo": "56.0.0-preview.12",
|
|
30
|
+
"expo-asset": "56.0.10",
|
|
31
31
|
"expo-module-scripts": "56.0.2"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"react-native": "*",
|
|
37
37
|
"expo-asset": "*"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "f26be3dd9396bf7c399a1d607865d0fabdbc0d64",
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "expo-module build",
|
|
42
42
|
"clean": "expo-module clean",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/withaudio.ts"],"version":"5.9.
|
|
1
|
+
{"root":["./src/index.ts","./src/withaudio.ts"],"version":"5.9.3"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b03efa19389d62afcae08ccb49299bc5
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5d7850aa094236f7117525f5b41b248cf88e6aa3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
7adc88e437f5c6573628c06bd85ad77da782bc1c370c756310b82d6344c96d99
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e2232fd407b882af66893dc25ea436522fff3cb025be09a1959daa99c39bd585d685b1729c7ca5e2ea970f6c0f98b083187b17a19680f3434529e93277302646
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
108cc95093198f117d6cc911be1a5930
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f1783da6f71616a7bd3ca497eba8cf16ed75a7b0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a25203c3df1b887123b59db81afcf4132a1c8aeb57acfd4a58706e5d2ed4c8c5
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
50204594468f7710e47700986cf6576ab9740fdcdd8844949bcb18070e421b297c2899d3e6159a13853039a517486529a9efc06d1ff81771038d6d9fa2cf56fb
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2d9581e4264c985071b4f2d2c2c91617
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ca6f9529e64129890b1f3261d6c6f172e2f6db69
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
33c69502e08021f27d158df65cd4a733149b06b65c4854946b88dfa42cc6df5b
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a9b3dbbdf90ee09d09613708ea59dda7fe86611d9ff34c6ffa524e37d15343586547a9506fe730d2c1b0b4bf91402e76ff3d241d988c5fba6a0bf0ea1c3975d7
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8090ec9ec2e7fb0da768f160987f9e13
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ba66b4433f478f85cd078004773b7e253eaaed6c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5edc401573b021778f819b44612548f51f1c2a964b8ed8fddb440082ff8a9f33
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
24c679d78999946834806c10aa70392d0cd37a43962cfe762e9b321774e7e7f318eea1c814d19afbe2fb6bc24937963821e38fb213acccd39438b1826c9c16a3
|