expo-audio 58.0.4 → 58.0.5

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 (54) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/audio/AudioExceptions.kt +0 -6
  4. package/android/src/main/java/expo/modules/audio/AudioRecorder.kt +0 -12
  5. package/android/src/main/java/expo/modules/audio/service/AudioRecordingServiceConnection.kt +23 -12
  6. package/build/AudioPlayer.web.js +14 -2
  7. package/build/AudioPlayer.web.js.map +1 -1
  8. package/build/AudioPlaylist.web.d.ts +1 -0
  9. package/build/AudioPlaylist.web.js +15 -5
  10. package/build/AudioPlaylist.web.js.map +1 -1
  11. package/build/AudioUtils.web.d.ts +1 -0
  12. package/build/AudioUtils.web.js +4 -0
  13. package/build/AudioUtils.web.js.map +1 -1
  14. package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.4/expo.modules.audio-58.0.4-sources.jar → 58.0.5/expo.modules.audio-58.0.5-sources.jar} +0 -0
  15. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5-sources.jar.md5 +1 -0
  16. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5-sources.jar.sha1 +1 -0
  17. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5-sources.jar.sha256 +1 -0
  18. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5-sources.jar.sha512 +1 -0
  19. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.aar +0 -0
  20. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.aar.md5 +1 -0
  21. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.aar.sha1 +1 -0
  22. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.aar.sha256 +1 -0
  23. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.aar.sha512 +1 -0
  24. package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.4/expo.modules.audio-58.0.4.module → 58.0.5/expo.modules.audio-58.0.5.module} +22 -22
  25. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.module.md5 +1 -0
  26. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.module.sha1 +1 -0
  27. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.module.sha256 +1 -0
  28. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.module.sha512 +1 -0
  29. package/local-maven-repo/expo/modules/audio/expo.modules.audio/{58.0.4/expo.modules.audio-58.0.4.pom → 58.0.5/expo.modules.audio-58.0.5.pom} +1 -1
  30. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.pom.md5 +1 -0
  31. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.pom.sha1 +1 -0
  32. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.pom.sha256 +1 -0
  33. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.5/expo.modules.audio-58.0.5.pom.sha512 +1 -0
  34. package/package.json +9 -5
  35. package/src/AudioPlayer.web.ts +14 -1
  36. package/src/AudioPlaylist.web.ts +16 -5
  37. package/src/AudioUtils.web.ts +5 -0
  38. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.md5 +0 -1
  39. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha1 +0 -1
  40. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha256 +0 -1
  41. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4-sources.jar.sha512 +0 -1
  42. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar +0 -0
  43. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.md5 +0 -1
  44. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha1 +0 -1
  45. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha256 +0 -1
  46. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.aar.sha512 +0 -1
  47. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.md5 +0 -1
  48. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha1 +0 -1
  49. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha256 +0 -1
  50. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.module.sha512 +0 -1
  51. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.md5 +0 -1
  52. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha1 +0 -1
  53. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha256 +0 -1
  54. package/local-maven-repo/expo/modules/audio/expo.modules.audio/58.0.4/expo.modules.audio-58.0.4.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 58.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [Android] Fixed `prepareToRecordAsync` rejecting when `allowsBackgroundRecording` is `true` and the notification permission is not granted ([#50705](https://github.com/expo/expo/issues/50705)). ([#50968](https://github.com/expo/expo/pull/50968) by [@alanjhughes](https://github.com/alanjhughes))
8
+ - [Web] Fixed an uncaught promise rejection, and `playing` staying `true`, when the browser blocks playback before the user interacts with the page. The player now reports the rejection in `error` on its status ([#36264](https://github.com/expo/expo/issues/36264)). ([#50972](https://github.com/expo/expo/pull/50972) by [@alanjhughes](https://github.com/alanjhughes))
9
+ - [Android] Fix `prepareToRecordAsync()` hanging forever when background recording is enabled and the recording service never connects. The binding timeout is now started, and the promise also rejects when the React context is lost. ([#50883](https://github.com/expo/expo/pull/50883) by [@Cedric921](https://github.com/Cedric921))
10
+
3
11
  ## 58.0.4
4
12
 
5
13
  ### Patch Changes
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'expo.modules.audio'
7
- version = '58.0.4'
7
+ version = '58.0.5'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.audio"
11
11
  defaultConfig {
12
12
  versionCode 1
13
- versionName "58.0.4"
13
+ versionName "58.0.5"
14
14
  }
15
15
 
16
16
  compileOptions {
@@ -14,12 +14,6 @@ private const val defaultRecordingServiceTip =
14
14
  internal class AudioPermissionsException :
15
15
  CodedException("RECORD_AUDIO permission has not been granted")
16
16
 
17
- internal class NotificationPermissionsException :
18
- CodedException(
19
- "POST_NOTIFICATIONS permission has not been granted. This permission is required when using background recording (allowsBackgroundRecording: true). " +
20
- "Request notification permissions using AudioModule.requestNotificationPermissionsAsync() before calling prepareRecording()."
21
- )
22
-
23
17
  internal class GetAudioInputNotSupportedException :
24
18
  CodedException("Getting current audio input is not supported on devices running Android version lower than Android 9.0")
25
19
 
@@ -89,10 +89,6 @@ class AudioRecorder(
89
89
  throw AudioRecorderAlreadyPreparedException()
90
90
  }
91
91
 
92
- if (useForegroundService && !hasNotificationPermissions()) {
93
- throw NotificationPermissionsException()
94
- }
95
-
96
92
  val recordingOptions = options ?: this.options
97
93
  val mediaRecorder = createRecorder(recordingOptions)
98
94
  recorder = mediaRecorder
@@ -462,14 +458,6 @@ class AudioRecorder(
462
458
  private fun hasRecordingPermissions() =
463
459
  ContextCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
464
460
 
465
- private fun hasNotificationPermissions(): Boolean {
466
- // POST_NOTIFICATIONS permission is only required on Android 13+ (API 33+)
467
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
468
- return true
469
- }
470
- return ContextCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED
471
- }
472
-
473
461
  fun getAvailableInputs(audioManager: AudioManager) =
474
462
  audioManager.getDevices(AudioManager.GET_DEVICES_INPUTS).mapNotNull { deviceInfo ->
475
463
  val type = deviceInfo.type
@@ -40,10 +40,11 @@ class AudioRecordingServiceConnection(
40
40
  bindingTimeoutJob?.cancel()
41
41
  bindingTimeoutJob = CoroutineScope(Dispatchers.Default).launch {
42
42
  delay(timeoutMs)
43
- if (bindingState == ServiceBindingState.BINDING) {
44
- bindingContinuation?.resumeWithException(AudioRecordingServiceException("The recording service connection has failed to connect with the recording service within ${timeoutMs}ms"))
45
- unbind()
46
- }
43
+ // Only the side that takes the continuation settles the binding. If a service callback
44
+ // got it first, the binding has already been handled and must not be unbound here.
45
+ val continuation = takeBindingContinuation() ?: return@launch
46
+ continuation.resumeWithException(AudioRecordingServiceException("The recording service connection has failed to connect with the recording service within ${timeoutMs}ms"))
47
+ unbind()
47
48
  }
48
49
  }
49
50
 
@@ -52,6 +53,14 @@ class AudioRecordingServiceConnection(
52
53
  bindingTimeoutJob = null
53
54
  }
54
55
 
56
+ /**
57
+ * Returns the pending binding continuation and clears it, so that it can be resumed at most once,
58
+ * even if the binding timeout races with a service connection callback.
59
+ */
60
+ private fun takeBindingContinuation(): Continuation<Unit>? = synchronized(this) {
61
+ bindingContinuation.also { bindingContinuation = null }
62
+ }
63
+
55
64
  /**
56
65
  * Binds with the recording service. If the service doesn't exist, it will create the service.
57
66
  */
@@ -71,7 +80,9 @@ class AudioRecordingServiceConnection(
71
80
  suspendCoroutine { continuation ->
72
81
  if (bindingState == ServiceBindingState.UNBOUND || bindingState == ServiceBindingState.FAILED) {
73
82
  val reactContext = appContext.reactContext ?: run {
74
- onBindingFailed("Binding with the expo-audio playback service failed: React context lost")
83
+ val message = "Binding with the expo-audio recording service failed: React context lost"
84
+ onBindingFailed(message)
85
+ continuation.resumeWithException(AudioRecordingServiceException(message))
75
86
  return@suspendCoroutine
76
87
  }
77
88
  val serviceRunning = startServiceAndBind(appContext, reactContext, this, AudioRecordingService::class.java, AudioRecordingService.ACTION_START_RECORDING)
@@ -83,6 +94,8 @@ class AudioRecordingServiceConnection(
83
94
 
84
95
  transitionToState(ServiceBindingState.BINDING)
85
96
  bindingContinuation = continuation
97
+ // Without a timeout, the promise would never settle if the system never calls back.
98
+ startBindingTimeout()
86
99
  }
87
100
  }
88
101
  }
@@ -93,18 +106,18 @@ class AudioRecordingServiceConnection(
93
106
  val recorder = recorder.get()
94
107
  if (recorder == null || isRecorderReleased) {
95
108
  transitionToState(ServiceBindingState.FAILED)
96
- bindingContinuation?.resumeWithException(AudioRecordingServiceException("The recorder has been deallocated"))
109
+ takeBindingContinuation()?.resumeWithException(AudioRecordingServiceException("The recorder has been deallocated"))
97
110
  return
98
111
  }
99
112
 
100
113
  val serviceBinder: AudioRecordingServiceBinder = binder as? AudioRecordingServiceBinder ?: run {
101
- bindingContinuation?.resumeWithException(AudioRecordingServiceException("Could not bind to the recording service - invalid binder type"))
114
+ takeBindingContinuation()?.resumeWithException(AudioRecordingServiceException("Could not bind to the recording service - invalid binder type"))
102
115
  transitionToState(ServiceBindingState.FAILED)
103
116
  return
104
117
  }
105
118
  transitionToState(ServiceBindingState.BOUND)
106
119
 
107
- bindingContinuation?.resume(Unit)
120
+ takeBindingContinuation()?.resume(Unit)
108
121
  recordingServiceBinder = serviceBinder
109
122
  serviceBinder.service.appContext = appContext
110
123
  }
@@ -117,19 +130,17 @@ class AudioRecordingServiceConnection(
117
130
 
118
131
  override fun onBindingDied(name: ComponentName?) {
119
132
  cancelBindingTimeout()
120
- bindingContinuation?.resumeWithException(
133
+ takeBindingContinuation()?.resumeWithException(
121
134
  AudioRecordingServiceException("Service binding died")
122
135
  )
123
- bindingContinuation = null
124
136
  super.onBindingDied(name)
125
137
  }
126
138
 
127
139
  override fun onNullBinding(componentName: ComponentName) {
128
140
  cancelBindingTimeout()
129
- bindingContinuation?.resumeWithException(
141
+ takeBindingContinuation()?.resumeWithException(
130
142
  AudioRecordingServiceException("Service returned null binding")
131
143
  )
132
- bindingContinuation = null
133
144
  super.onNullBinding(componentName)
134
145
  }
135
146
 
@@ -1,6 +1,6 @@
1
1
  import { AUDIO_SAMPLE_UPDATE, PLAYBACK_STATUS_UPDATE } from './AudioEventKeys';
2
2
  import { isAudioActive } from './AudioModule.web';
3
- import { getAudioContext, getSourceUri, getStatusFromMedia, nextId, preloadCache, safeDuration } from './AudioUtils.web';
3
+ import { getAudioContext, getSourceUri, getStatusFromMedia, isPlayInterrupted, nextId, preloadCache, safeDuration } from './AudioUtils.web';
4
4
  import { mediaSessionController } from './MediaSessionController.web';
5
5
  export const activePlayers = new Set();
6
6
  let hasWarnedIOSVolume = false;
@@ -82,7 +82,19 @@ export class AudioPlayerWeb extends globalThis.expo.SharedObject {
82
82
  if (!isAudioActive) {
83
83
  return;
84
84
  }
85
- this.media.play();
85
+ const media = this.media;
86
+ media.play().catch((error)=>{
87
+ if (isPlayInterrupted(error) || media !== this.media) {
88
+ return;
89
+ }
90
+ this.isPlaying = false;
91
+ this.stopSampling();
92
+ this.emit(PLAYBACK_STATUS_UPDATE, {
93
+ ...getStatusFromMedia(media, this.id),
94
+ playing: false,
95
+ error: error?.message ?? String(error)
96
+ });
97
+ });
86
98
  this.isPlaying = true;
87
99
  this.startSampling();
88
100
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["AudioPlayer.web.ts"],"sourcesContent":[null],"names":["AUDIO_SAMPLE_UPDATE","PLAYBACK_STATUS_UPDATE","isAudioActive","getAudioContext","getSourceUri","getStatusFromMedia","nextId","preloadCache","safeDuration","mediaSessionController","activePlayers","Set","hasWarnedIOSVolume","isIOSSafari","test","navigator","userAgent","AudioPlayerWeb","globalThis","expo","SharedObject","source","options","updateInterval","crossOrigin","src","interval","Math","max","media","_createMediaElement","add","id","isAudioSamplingSupported","isBuffering","shouldCorrectPitch","isPlaying","loaded","analyser","sourceNode","samplingFrameId","samplingEnabled","samplingBuffer","playing","muted","value","loop","duration","currentTime","paused","isLoaded","playbackRate","volume","console","warn","currentStatus","play","startSampling","pause","stopSampling","replace","wasPlaying","wasSampling","mediaSessionState","getActiveState","remove","setAudioSamplingEnabled","setActivePlayer","metadata","undefined","seekTo","seconds","toleranceMillisBefore","toleranceMillisAfter","enabled","_isCrossOrigin","ctx","state","resume","createMediaElementSource","createAnalyser","fftSize","disconnect","connect","destination","Float32Array","frequencyBinCount","sampleLoop","getFloatTimeDomainData","emit","channels","frames","Array","from","timestamp","requestAnimationFrame","cancelAnimationFrame","setPlaybackRate","second","pitchCorrectionQuality","preservesPitch","updatePositionState","clear","ontimeupdate","onplay","onpause","onseeked","onended","onloadeddata","onerror","removeAttribute","load","delete","release","setActiveForLockScreen","active","updateLockScreenMetadata","updateMetadata","clearLockScreenControls","URL","origin","window","location","newSource","cachedUri","has","get","blobUrl","Audio","lastEmitTime","intervalSec","now","updatePlaybackState","errorMessage","error","code"],"mappings":"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"}
1
+ {"version":3,"sources":["AudioPlayer.web.ts"],"sourcesContent":[null],"names":["AUDIO_SAMPLE_UPDATE","PLAYBACK_STATUS_UPDATE","isAudioActive","getAudioContext","getSourceUri","getStatusFromMedia","isPlayInterrupted","nextId","preloadCache","safeDuration","mediaSessionController","activePlayers","Set","hasWarnedIOSVolume","isIOSSafari","test","navigator","userAgent","AudioPlayerWeb","globalThis","expo","SharedObject","source","options","updateInterval","crossOrigin","src","interval","Math","max","media","_createMediaElement","add","id","isAudioSamplingSupported","isBuffering","shouldCorrectPitch","isPlaying","loaded","analyser","sourceNode","samplingFrameId","samplingEnabled","samplingBuffer","playing","muted","value","loop","duration","currentTime","paused","isLoaded","playbackRate","volume","console","warn","currentStatus","play","catch","error","stopSampling","emit","message","String","startSampling","pause","replace","wasPlaying","wasSampling","mediaSessionState","getActiveState","remove","setAudioSamplingEnabled","setActivePlayer","metadata","undefined","seekTo","seconds","toleranceMillisBefore","toleranceMillisAfter","enabled","_isCrossOrigin","ctx","state","resume","createMediaElementSource","createAnalyser","fftSize","disconnect","connect","destination","Float32Array","frequencyBinCount","sampleLoop","getFloatTimeDomainData","channels","frames","Array","from","timestamp","requestAnimationFrame","cancelAnimationFrame","setPlaybackRate","second","pitchCorrectionQuality","preservesPitch","updatePositionState","clear","ontimeupdate","onplay","onpause","onseeked","onended","onloadeddata","onerror","removeAttribute","load","delete","release","setActiveForLockScreen","active","updateLockScreenMetadata","updateMetadata","clearLockScreenControls","URL","origin","window","location","newSource","cachedUri","has","get","blobUrl","Audio","lastEmitTime","intervalSec","now","updatePlaybackState","errorMessage","code"],"mappings":"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"}
@@ -56,6 +56,7 @@ export declare class AudioPlaylistWeb extends globalThis.expo.SharedObject<Audio
56
56
  private _attachMediaHandlers;
57
57
  private _createMediaElement;
58
58
  private _handleTrackEnded;
59
+ private _playCurrentMedia;
59
60
  private _getStatus;
60
61
  private _emitStatus;
61
62
  private _updateMediaSession;
@@ -1,5 +1,5 @@
1
1
  import { PLAYLIST_STATUS_UPDATE, TRACK_CHANGED } from './AudioEventKeys';
2
- import { getSourceUri, nextId } from './AudioUtils.web';
2
+ import { getSourceUri, isPlayInterrupted, nextId } from './AudioUtils.web';
3
3
  import { mediaSessionController } from './MediaSessionController.web';
4
4
  import { resolveSource } from './utils/resolveSource';
5
5
  function getSourceInfo(source) {
@@ -115,7 +115,7 @@ export class AudioPlaylistWeb extends globalThis.expo.SharedObject {
115
115
  if (!this._currentMedia || this._sources.length === 0) {
116
116
  return;
117
117
  }
118
- this._currentMedia.play();
118
+ this._playCurrentMedia();
119
119
  this._isPlaying = true;
120
120
  }
121
121
  pause() {
@@ -217,7 +217,7 @@ export class AudioPlaylistWeb extends globalThis.expo.SharedObject {
217
217
  if (source) {
218
218
  this._currentMedia = this._createMediaElement(source);
219
219
  if (wasPlaying) {
220
- this._currentMedia.play();
220
+ this._playCurrentMedia();
221
221
  }
222
222
  }
223
223
  this._preloadNext();
@@ -283,7 +283,7 @@ export class AudioPlaylistWeb extends globalThis.expo.SharedObject {
283
283
  }
284
284
  }
285
285
  if (this._currentMedia && wasPlaying) {
286
- this._currentMedia.play();
286
+ this._playCurrentMedia();
287
287
  this._isPlaying = true;
288
288
  }
289
289
  this._preloadNext();
@@ -424,7 +424,7 @@ export class AudioPlaylistWeb extends globalThis.expo.SharedObject {
424
424
  if (this._loopMode === 'single') {
425
425
  if (this._currentMedia) {
426
426
  this._currentMedia.currentTime = 0;
427
- this._currentMedia.play();
427
+ this._playCurrentMedia();
428
428
  }
429
429
  return;
430
430
  }
@@ -444,6 +444,16 @@ export class AudioPlaylistWeb extends globalThis.expo.SharedObject {
444
444
  this._transitionToTrack(this._currentIndex + 1, this._currentIndex);
445
445
  }
446
446
  }
447
+ _playCurrentMedia() {
448
+ const media = this._currentMedia;
449
+ media?.play().catch((error)=>{
450
+ if (isPlayInterrupted(error) || media !== this._currentMedia) {
451
+ return;
452
+ }
453
+ this._isPlaying = false;
454
+ this._emitStatus();
455
+ });
456
+ }
447
457
  _getStatus() {
448
458
  return {
449
459
  id: this.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["AudioPlaylist.web.ts"],"sourcesContent":[null],"names":["PLAYLIST_STATUS_UPDATE","TRACK_CHANGED","getSourceUri","nextId","mediaSessionController","resolveSource","getSourceInfo","source","resolved","uri","name","AudioPlaylistWeb","globalThis","expo","SharedObject","initialSources","updateInterval","loopMode","crossOrigin","_updateInterval","Math","max","_loopMode","_crossOrigin","_sources","push","_sourceInfos","length","_currentMedia","_createMediaElement","_preloadNext","id","_currentIndex","_nextMedia","_isPlaying","_isLoaded","_isBuffering","_volume","_muted","_playbackRate","_knownDuration","currentIndex","trackCount","sources","playing","muted","value","isLoaded","isBuffering","currentTime","duration","volume","playbackRate","loop","_emitStatus","currentStatus","_getStatus","play","pause","next","previousIndex","nextIndex","_transitionToTrack","previous","prevIndex","skipTo","index","seekTo","seconds","add","insert","splice","remove","wasCurrentTrack","wasPlaying","_cleanupMedia","clear","destroy","setActiveForLockScreen","active","metadata","options","setActivePlayer","updateLockScreenMetadata","updateMetadata","clearLockScreenControls","newIndex","isNextSequential","_attachMediaHandlers","emit","Audio","undefined","preload","media","ontimeupdate","onplay","onpause","onseeked","onended","onloadedmetadata","onloadeddata","onwaiting","oncanplaythrough","onerror","removeAttribute","load","lastEmitTime","intervalSec","readyState","isNaN","isFinite","now","ended","_handleTrackEnded","isLastTrack","_updateMediaSession","didJustFinish","updatePlaybackState","updatePositionState"],"mappings":"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"}
1
+ {"version":3,"sources":["AudioPlaylist.web.ts"],"sourcesContent":[null],"names":["PLAYLIST_STATUS_UPDATE","TRACK_CHANGED","getSourceUri","isPlayInterrupted","nextId","mediaSessionController","resolveSource","getSourceInfo","source","resolved","uri","name","AudioPlaylistWeb","globalThis","expo","SharedObject","initialSources","updateInterval","loopMode","crossOrigin","_updateInterval","Math","max","_loopMode","_crossOrigin","_sources","push","_sourceInfos","length","_currentMedia","_createMediaElement","_preloadNext","id","_currentIndex","_nextMedia","_isPlaying","_isLoaded","_isBuffering","_volume","_muted","_playbackRate","_knownDuration","currentIndex","trackCount","sources","playing","muted","value","isLoaded","isBuffering","currentTime","duration","volume","playbackRate","loop","_emitStatus","currentStatus","_getStatus","play","_playCurrentMedia","pause","next","previousIndex","nextIndex","_transitionToTrack","previous","prevIndex","skipTo","index","seekTo","seconds","add","insert","splice","remove","wasCurrentTrack","wasPlaying","_cleanupMedia","clear","destroy","setActiveForLockScreen","active","metadata","options","setActivePlayer","updateLockScreenMetadata","updateMetadata","clearLockScreenControls","newIndex","isNextSequential","_attachMediaHandlers","emit","Audio","undefined","preload","media","ontimeupdate","onplay","onpause","onseeked","onended","onloadedmetadata","onloadeddata","onwaiting","oncanplaythrough","onerror","removeAttribute","load","lastEmitTime","intervalSec","readyState","isNaN","isFinite","now","ended","_handleTrackEnded","isLastTrack","_updateMediaSession","didJustFinish","catch","error","updatePlaybackState","updatePositionState"],"mappings":"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"}
@@ -3,6 +3,7 @@ export declare const nextId: () => string;
3
3
  export declare function getAudioContext(): AudioContext;
4
4
  export declare function getUserMedia(constraints: MediaStreamConstraints): Promise<MediaStream>;
5
5
  export declare function safeDuration(duration: number): number;
6
+ export declare function isPlayInterrupted(error: unknown): boolean;
6
7
  export declare function getStatusFromMedia(media: HTMLMediaElement, id: string): AudioStatus;
7
8
  export declare const preloadCache: Map<string, {
8
9
  blobUrl: string;
@@ -35,6 +35,10 @@ export function getUserMedia(constraints) {
35
35
  export function safeDuration(duration) {
36
36
  return isNaN(duration) || !isFinite(duration) ? 0 : duration;
37
37
  }
38
+ // `play()` rejects with an `AbortError` when `pause()` or a new source interrupts it, which is not a failure.
39
+ export function isPlayInterrupted(error) {
40
+ return error instanceof DOMException && error.name === 'AbortError';
41
+ }
38
42
  export function getStatusFromMedia(media, id) {
39
43
  const isPlaying = !!(media.currentTime > 0 && !media.paused && !media.ended && media.readyState > 2);
40
44
  const status = {
@@ -1 +1 @@
1
- {"version":3,"sources":["AudioUtils.web.ts"],"sourcesContent":[null],"names":["Asset","nextId","id","String","audioContext","getAudioContext","AudioContext","getUserMedia","constraints","navigator","mediaDevices","webkitGetUserMedia","mozGetUserMedia","error","Error","code","name","Promise","resolve","reject","call","safeDuration","duration","isNaN","isFinite","getStatusFromMedia","media","isPlaying","currentTime","paused","ended","readyState","status","isLoaded","playbackState","timeControlStatus","reasonForWaitingToPlay","playing","didJustFinish","isBuffering","playbackRate","shouldCorrectPitch","mute","muted","loop","isLive","Infinity","currentOffsetFromLive","preloadCache","Map","getSourceUri","source","asset","fromModule","uri","assetId","undefined"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AAInC,OAAO,MAAMC,SAAS,AAAC,CAAA;IACrB,IAAIC,KAAK;IACT,OAAO,IAAMC,OAAOD;AACtB,CAAA,IAAK;AAEL,IAAIE,eAAoC;AAExC,OAAO,SAASC;IACd,IAAI,CAACD,cAAc;QACjBA,eAAe,IAAIE;IACrB;IACA,OAAOF;AACT;AAEA,OAAO,SAASG,aAAaC,WAAmC;IAC9D,IAAIC,UAAUC,YAAY,IAAID,UAAUC,YAAY,CAACH,YAAY,EAAE;QACjE,OAAOE,UAAUC,YAAY,CAACH,YAAY,CAACC;IAC7C;IAEA,iFAAiF;IACjF,+DAA+D;IAC/D,oEAAoE;IAEpE,yDAAyD;IACzD,MAAMD,eACJ,yHAAyH;IACzHE,UAAUF,YAAY,IACtBE,UAAUE,kBAAkB,IAC5BF,UAAUG,eAAe,IACzB;QACE,MAAMC,QAAa,IAAIC,MAAM;QAC7BD,MAAME,IAAI,GAAG;QACbF,MAAMG,IAAI,GAAG;QACb,MAAMH;IACR;IAEF,OAAO,IAAII,QAAQ,CAACC,SAASC;QAC3B,6DAA6D;QAC7D,wCAAwC;QACxC,6EAA6E;QAC7EZ,aAAaa,IAAI,CAACX,WAAWD,aAAaU,SAASC;IACrD;AACF;AAEA,OAAO,SAASE,aAAaC,QAAgB;IAC3C,OAAOC,MAAMD,aAAa,CAACE,SAASF,YAAY,IAAIA;AACtD;AAEA,OAAO,SAASG,mBAAmBC,KAAuB,EAAExB,EAAU;IACpE,MAAMyB,YAAY,CAAC,CACjBD,CAAAA,MAAME,WAAW,GAAG,KACpB,CAACF,MAAMG,MAAM,IACb,CAACH,MAAMI,KAAK,IACZJ,MAAMK,UAAU,GAAG,CAAA;IAGrB,MAAMC,SAAsB;QAC1B9B;QACA+B,UAAU;QACVX,UAAUD,aAAaK,MAAMJ,QAAQ;QACrCM,aAAaF,MAAME,WAAW;QAC9BM,eAAe;QACfC,mBAAmBR,YAAY,YAAY;QAC3CS,wBAAwB;QACxBC,SAASV;QACTW,eAAeZ,MAAMI,KAAK;QAC1BS,aAAa;QACbC,cAAcd,MAAMc,YAAY;QAChCC,oBAAoB;QACpBC,MAAMhB,MAAMiB,KAAK;QACjBC,MAAMlB,MAAMkB,IAAI;QAChBC,QAAQnB,MAAMJ,QAAQ,KAAKwB;QAC3BC,uBAAuB;QACvBlC,OAAO;IACT;IAEA,OAAOmB;AACT;AAEA,oEAAoE;AACpE,OAAO,MAAMgB,eAAe,IAAIC,MAA4D;AAE5F,OAAO,SAASC,aAAaC,MAAmB;IAC9C,IAAI,OAAOA,WAAW,UAAU;QAC9B,OAAOA;IACT;IACA,IAAI,OAAOA,WAAW,UAAU;QAC9B,MAAMC,QAAQpD,MAAMqD,UAAU,CAACF;QAC/B,OAAOC,MAAME,GAAG;IAClB;IACA,IAAI,OAAOH,QAAQI,YAAY,YAAY,CAACJ,QAAQG,KAAK;QACvD,MAAMF,QAAQpD,MAAMqD,UAAU,CAACF,OAAOI,OAAO;QAC7C,OAAOH,MAAME,GAAG;IAClB;IAEA,OAAOH,QAAQG,OAAOE;AACxB"}
1
+ {"version":3,"sources":["AudioUtils.web.ts"],"sourcesContent":[null],"names":["Asset","nextId","id","String","audioContext","getAudioContext","AudioContext","getUserMedia","constraints","navigator","mediaDevices","webkitGetUserMedia","mozGetUserMedia","error","Error","code","name","Promise","resolve","reject","call","safeDuration","duration","isNaN","isFinite","isPlayInterrupted","DOMException","getStatusFromMedia","media","isPlaying","currentTime","paused","ended","readyState","status","isLoaded","playbackState","timeControlStatus","reasonForWaitingToPlay","playing","didJustFinish","isBuffering","playbackRate","shouldCorrectPitch","mute","muted","loop","isLive","Infinity","currentOffsetFromLive","preloadCache","Map","getSourceUri","source","asset","fromModule","uri","assetId","undefined"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAa;AAInC,OAAO,MAAMC,SAAS,AAAC,CAAA;IACrB,IAAIC,KAAK;IACT,OAAO,IAAMC,OAAOD;AACtB,CAAA,IAAK;AAEL,IAAIE,eAAoC;AAExC,OAAO,SAASC;IACd,IAAI,CAACD,cAAc;QACjBA,eAAe,IAAIE;IACrB;IACA,OAAOF;AACT;AAEA,OAAO,SAASG,aAAaC,WAAmC;IAC9D,IAAIC,UAAUC,YAAY,IAAID,UAAUC,YAAY,CAACH,YAAY,EAAE;QACjE,OAAOE,UAAUC,YAAY,CAACH,YAAY,CAACC;IAC7C;IAEA,iFAAiF;IACjF,+DAA+D;IAC/D,oEAAoE;IAEpE,yDAAyD;IACzD,MAAMD,eACJ,yHAAyH;IACzHE,UAAUF,YAAY,IACtBE,UAAUE,kBAAkB,IAC5BF,UAAUG,eAAe,IACzB;QACE,MAAMC,QAAa,IAAIC,MAAM;QAC7BD,MAAME,IAAI,GAAG;QACbF,MAAMG,IAAI,GAAG;QACb,MAAMH;IACR;IAEF,OAAO,IAAII,QAAQ,CAACC,SAASC;QAC3B,6DAA6D;QAC7D,wCAAwC;QACxC,6EAA6E;QAC7EZ,aAAaa,IAAI,CAACX,WAAWD,aAAaU,SAASC;IACrD;AACF;AAEA,OAAO,SAASE,aAAaC,QAAgB;IAC3C,OAAOC,MAAMD,aAAa,CAACE,SAASF,YAAY,IAAIA;AACtD;AAEA,8GAA8G;AAC9G,OAAO,SAASG,kBAAkBZ,KAAc;IAC9C,OAAOA,iBAAiBa,gBAAgBb,MAAMG,IAAI,KAAK;AACzD;AAEA,OAAO,SAASW,mBAAmBC,KAAuB,EAAE1B,EAAU;IACpE,MAAM2B,YAAY,CAAC,CACjBD,CAAAA,MAAME,WAAW,GAAG,KACpB,CAACF,MAAMG,MAAM,IACb,CAACH,MAAMI,KAAK,IACZJ,MAAMK,UAAU,GAAG,CAAA;IAGrB,MAAMC,SAAsB;QAC1BhC;QACAiC,UAAU;QACVb,UAAUD,aAAaO,MAAMN,QAAQ;QACrCQ,aAAaF,MAAME,WAAW;QAC9BM,eAAe;QACfC,mBAAmBR,YAAY,YAAY;QAC3CS,wBAAwB;QACxBC,SAASV;QACTW,eAAeZ,MAAMI,KAAK;QAC1BS,aAAa;QACbC,cAAcd,MAAMc,YAAY;QAChCC,oBAAoB;QACpBC,MAAMhB,MAAMiB,KAAK;QACjBC,MAAMlB,MAAMkB,IAAI;QAChBC,QAAQnB,MAAMN,QAAQ,KAAK0B;QAC3BC,uBAAuB;QACvBpC,OAAO;IACT;IAEA,OAAOqB;AACT;AAEA,oEAAoE;AACpE,OAAO,MAAMgB,eAAe,IAAIC,MAA4D;AAE5F,OAAO,SAASC,aAAaC,MAAmB;IAC9C,IAAI,OAAOA,WAAW,UAAU;QAC9B,OAAOA;IACT;IACA,IAAI,OAAOA,WAAW,UAAU;QAC9B,MAAMC,QAAQtD,MAAMuD,UAAU,CAACF;QAC/B,OAAOC,MAAME,GAAG;IAClB;IACA,IAAI,OAAOH,QAAQI,YAAY,YAAY,CAACJ,QAAQG,KAAK;QACvD,MAAMF,QAAQtD,MAAMuD,UAAU,CAACF,OAAOI,OAAO;QAC7C,OAAOH,MAAME,GAAG;IAClB;IAEA,OAAOH,QAAQG,OAAOE;AACxB"}
@@ -0,0 +1 @@
1
+ 2835caa9fe011f7208dc83d76b10c09bad61c9191417ddad8abb463973051dc4
@@ -0,0 +1 @@
1
+ 86b1307665b7b0b56119af7551c6ed936002c58f2f30baf988dd0ec9339e9c6a2e138834ddeaf29bfa97123932cda4b30d5747b6273b1738f3bedd46a7cab1eb
@@ -0,0 +1 @@
1
+ f5d4f700343bb56181abf818cf378c7565b8ada0706cf9eb49214b8d1c347e63
@@ -0,0 +1 @@
1
+ 59bb12fe2b353f6ed19ac674fd7c169511878f77efed778c4759c30651ef99ab3bc4cf2673281202a73f0f8bac18bb27967bc50f448626a72141ce32f8d2a751
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "expo.modules.audio",
5
5
  "module": "expo.modules.audio",
6
- "version": "58.0.4",
6
+ "version": "58.0.5",
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.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"
27
+ "name": "expo.modules.audio-58.0.5.aar",
28
+ "url": "expo.modules.audio-58.0.5.aar",
29
+ "size": 560725,
30
+ "sha512": "59bb12fe2b353f6ed19ac674fd7c169511878f77efed778c4759c30651ef99ab3bc4cf2673281202a73f0f8bac18bb27967bc50f448626a72141ce32f8d2a751",
31
+ "sha256": "f5d4f700343bb56181abf818cf378c7565b8ada0706cf9eb49214b8d1c347e63",
32
+ "sha1": "1a4b69b4ab712d35dfb53091bdc1324d09004fa0",
33
+ "md5": "c5038da7df341d65734dc8acbfcece49"
34
34
  }
35
35
  ]
36
36
  },
@@ -137,13 +137,13 @@
137
137
  ],
138
138
  "files": [
139
139
  {
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"
140
+ "name": "expo.modules.audio-58.0.5.aar",
141
+ "url": "expo.modules.audio-58.0.5.aar",
142
+ "size": 560725,
143
+ "sha512": "59bb12fe2b353f6ed19ac674fd7c169511878f77efed778c4759c30651ef99ab3bc4cf2673281202a73f0f8bac18bb27967bc50f448626a72141ce32f8d2a751",
144
+ "sha256": "f5d4f700343bb56181abf818cf378c7565b8ada0706cf9eb49214b8d1c347e63",
145
+ "sha1": "1a4b69b4ab712d35dfb53091bdc1324d09004fa0",
146
+ "md5": "c5038da7df341d65734dc8acbfcece49"
147
147
  }
148
148
  ]
149
149
  },
@@ -157,13 +157,13 @@
157
157
  },
158
158
  "files": [
159
159
  {
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"
160
+ "name": "expo.modules.audio-58.0.5-sources.jar",
161
+ "url": "expo.modules.audio-58.0.5-sources.jar",
162
+ "size": 43083,
163
+ "sha512": "86b1307665b7b0b56119af7551c6ed936002c58f2f30baf988dd0ec9339e9c6a2e138834ddeaf29bfa97123932cda4b30d5747b6273b1738f3bedd46a7cab1eb",
164
+ "sha256": "2835caa9fe011f7208dc83d76b10c09bad61c9191417ddad8abb463973051dc4",
165
+ "sha1": "a494b342680de2a7ced221067b9868313509d34c",
166
+ "md5": "ec9446514c3084e508e1357cf2a79520"
167
167
  }
168
168
  ]
169
169
  }
@@ -0,0 +1 @@
1
+ 321c3267c9079b05f9207b256fc7b60076233c03a62dcda16364633ada200794
@@ -0,0 +1 @@
1
+ 5cdc5eecb2b0d1108288a77efccb72ba4a829da74e40da4c4ac5e5dc3693b2a5b908810eb5ba9f703962a2a3bdfcaefbd08611cd8fcb72a78a1845a7423a475b
@@ -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.4</version>
12
+ <version>58.0.5</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
+ 565bdb6ba357e61e0386eaa11e259ba3c0b2fbb460bef1656207cd14bb1b400d
@@ -0,0 +1 @@
1
+ 256f6fa951975aeb8b4468588cee5e205d2d38aa06cc85ba4514ddb3b418c354ae379e52f1243a1bc606e8d7e684beb2aaf09f663c706290eaea079e829cdc10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-audio",
3
- "version": "58.0.4",
3
+ "version": "58.0.5",
4
4
  "description": "A cross-platform audio library for React Native and Expo apps.",
5
5
  "keywords": [
6
6
  "android",
@@ -22,12 +22,12 @@
22
22
  "main": "build/index.js",
23
23
  "types": "build/index.d.ts",
24
24
  "devDependencies": {
25
- "@types/jest": "^29.2.1",
25
+ "@types/jest": "^30.0.0",
26
26
  "@types/node": "^22.14.0",
27
27
  "@types/react": "~19.3.0",
28
- "expo": "58.0.2",
29
- "expo-asset": "58.0.10",
30
- "expo-module-scripts": "56.0.5"
28
+ "expo": "58.0.3",
29
+ "expo-asset": "58.0.11",
30
+ "expo-module-scripts": "56.0.6"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "expo": "*",
@@ -35,6 +35,9 @@
35
35
  "react": "*",
36
36
  "react-native": "*"
37
37
  },
38
+ "jest": {
39
+ "preset": "expo-module-scripts"
40
+ },
38
41
  "title": "Expo Audio",
39
42
  "scripts": {
40
43
  "precompile-android": "et prebuild-android-package-for-publish",
@@ -43,6 +46,7 @@
43
46
  "build:plugin": "expo-build --base plugin cjs:src",
44
47
  "clean": "expo-module clean",
45
48
  "lint": "oxlint --config oxlint.config.mjs .",
49
+ "test": "jest",
46
50
  "format": "expo-module format",
47
51
  "depscheck": "expo-module depscheck",
48
52
  "typecheck": "tsc -b tsconfig.all.json"
@@ -13,6 +13,7 @@ import {
13
13
  getAudioContext,
14
14
  getSourceUri,
15
15
  getStatusFromMedia,
16
+ isPlayInterrupted,
16
17
  nextId,
17
18
  preloadCache,
18
19
  safeDuration,
@@ -124,7 +125,19 @@ export class AudioPlayerWeb
124
125
  if (!isAudioActive) {
125
126
  return;
126
127
  }
127
- this.media.play();
128
+ const media = this.media;
129
+ media.play().catch((error) => {
130
+ if (isPlayInterrupted(error) || media !== this.media) {
131
+ return;
132
+ }
133
+ this.isPlaying = false;
134
+ this.stopSampling();
135
+ this.emit(PLAYBACK_STATUS_UPDATE, {
136
+ ...getStatusFromMedia(media, this.id),
137
+ playing: false,
138
+ error: error?.message ?? String(error),
139
+ });
140
+ });
128
141
  this.isPlaying = true;
129
142
  this.startSampling();
130
143
  }
@@ -8,7 +8,7 @@ import type {
8
8
  import type { AudioLockScreenOptions } from './AudioConstants';
9
9
  import { PLAYLIST_STATUS_UPDATE, TRACK_CHANGED } from './AudioEventKeys';
10
10
  import type { AudioPlaylist, AudioPlaylistEvents } from './AudioModule.types';
11
- import { getSourceUri, nextId } from './AudioUtils.web';
11
+ import { getSourceUri, isPlayInterrupted, nextId } from './AudioUtils.web';
12
12
  import { mediaSessionController } from './MediaSessionController.web';
13
13
  import { resolveSource } from './utils/resolveSource';
14
14
 
@@ -152,7 +152,7 @@ export class AudioPlaylistWeb
152
152
  if (!this._currentMedia || this._sources.length === 0) {
153
153
  return;
154
154
  }
155
- this._currentMedia.play();
155
+ this._playCurrentMedia();
156
156
  this._isPlaying = true;
157
157
  }
158
158
 
@@ -278,7 +278,7 @@ export class AudioPlaylistWeb
278
278
  if (source) {
279
279
  this._currentMedia = this._createMediaElement(source);
280
280
  if (wasPlaying) {
281
- this._currentMedia.play();
281
+ this._playCurrentMedia();
282
282
  }
283
283
  }
284
284
  this._preloadNext();
@@ -359,7 +359,7 @@ export class AudioPlaylistWeb
359
359
  }
360
360
 
361
361
  if (this._currentMedia && wasPlaying) {
362
- this._currentMedia.play();
362
+ this._playCurrentMedia();
363
363
  this._isPlaying = true;
364
364
  }
365
365
 
@@ -521,7 +521,7 @@ export class AudioPlaylistWeb
521
521
  if (this._loopMode === 'single') {
522
522
  if (this._currentMedia) {
523
523
  this._currentMedia.currentTime = 0;
524
- this._currentMedia.play();
524
+ this._playCurrentMedia();
525
525
  }
526
526
  return;
527
527
  }
@@ -544,6 +544,17 @@ export class AudioPlaylistWeb
544
544
  }
545
545
  }
546
546
 
547
+ private _playCurrentMedia(): void {
548
+ const media = this._currentMedia;
549
+ media?.play().catch((error) => {
550
+ if (isPlayInterrupted(error) || media !== this._currentMedia) {
551
+ return;
552
+ }
553
+ this._isPlaying = false;
554
+ this._emitStatus();
555
+ });
556
+ }
557
+
547
558
  private _getStatus(): AudioPlaylistStatus {
548
559
  return {
549
560
  id: this.id,
@@ -50,6 +50,11 @@ export function safeDuration(duration: number): number {
50
50
  return isNaN(duration) || !isFinite(duration) ? 0 : duration;
51
51
  }
52
52
 
53
+ // `play()` rejects with an `AbortError` when `pause()` or a new source interrupts it, which is not a failure.
54
+ export function isPlayInterrupted(error: unknown): boolean {
55
+ return error instanceof DOMException && error.name === 'AbortError';
56
+ }
57
+
53
58
  export function getStatusFromMedia(media: HTMLMediaElement, id: string): AudioStatus {
54
59
  const isPlaying = !!(
55
60
  media.currentTime > 0 &&
@@ -1 +0,0 @@
1
- b9a922c1e17423223501c1f3387d7719f6fae5cd9555b861931c948af389e891
@@ -1 +0,0 @@
1
- 6b52b2086aaa77e0c85829d33c244fc628004d9826eff8170fcc7bee594583e0ca63141233401eb034b101d9c24c605d86079ed9ee2abdfda1ee93929586e9a0
@@ -1 +0,0 @@
1
- 2a51da42795e2957fbe1d1eb650010d66125cf92
@@ -1 +0,0 @@
1
- 0c0ed2cf6c37a869edbcfc37199ef6bfd777023df6f61b7ceb70f3a2d15cf646
@@ -1 +0,0 @@
1
- d4b63688a2ed10c3f1fe4192ed93dc10be270a38c726808f283042c6beeafb2065684b81722fd82f13c8fa586ae6f9f475998388b93ab5ad56523e645a1a1df0
@@ -1 +0,0 @@
1
- decd83e81a4bef0a035c67a9e8fd9981114e02611a315293838a8f35c6486beb
@@ -1 +0,0 @@
1
- bb910e6f53e77c6cb5c40c6d98d27486ef68c68ae635e5853bd7205d0137822e4f6736e0b0eca3516ad737d049a0acfdbcc21d9cd54fe2eda00b982e0c2d17e6
@@ -1 +0,0 @@
1
- 3553c6a7ac54616659753c4f03d7d3783b1908a3
@@ -1 +0,0 @@
1
- 5e376957cfba5b72e87cb249b3778a698cb139ceaf6ef5a6fc1dd75f7f3505f4
@@ -1 +0,0 @@
1
- a07ea293fb89b12a185465fdc1352423c2d0045c534b9f2ee2ffbff585791103e4c3c709fa211c462c65a73515d678a85fb4a2e12838e86121939494e509a1fe