expo-audio 0.4.2 → 0.4.3
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 +6 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/audio/AudioModule.kt +95 -4
- package/android/src/main/java/expo/modules/audio/AudioPlayer.kt +1 -1
- package/android/src/main/java/expo/modules/audio/AudioRecords.kt +7 -1
- package/build/Audio.types.d.ts +7 -0
- package/build/Audio.types.d.ts.map +1 -1
- package/build/Audio.types.js.map +1 -1
- package/build/ExpoAudio.d.ts.map +1 -1
- package/build/ExpoAudio.js +1 -0
- package/build/ExpoAudio.js.map +1 -1
- package/expo-module.config.json +1 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3-sources.jar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3-sources.jar.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3-sources.jar.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3-sources.jar.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3-sources.jar.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.aar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.aar.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.aar.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.aar.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.aar.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{0.4.2/expo.modules.audio-0.4.2.module → 0.4.3/expo.modules.audio-0.4.3.module} +22 -22
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.module.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.module.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.module.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.module.sha512 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/{0.4.2/expo.modules.audio-0.4.2.pom → 0.4.3/expo.modules.audio-0.4.3.pom} +1 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.pom.md5 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.pom.sha1 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.pom.sha256 +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.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 +3 -3
- package/src/Audio.types.ts +9 -0
- package/src/ExpoAudio.ts +1 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2-sources.jar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2-sources.jar.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2-sources.jar.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2-sources.jar.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2-sources.jar.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.aar +0 -0
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.aar.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.aar.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.aar.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.aar.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.module.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.module.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.module.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.module.sha512 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.pom.md5 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.pom.sha1 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.pom.sha256 +0 -1
- package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.pom.sha512 +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
### 💡 Others
|
|
12
12
|
|
|
13
|
+
## 0.4.3 — 2025-04-25
|
|
14
|
+
|
|
15
|
+
### 💡 Others
|
|
16
|
+
|
|
17
|
+
- [Android] Support manual audio focus control on `Android`. ([#36221](https://github.com/expo/expo/pull/36221) by [@alanjhughes](https://github.com/alanjhughes))
|
|
18
|
+
|
|
13
19
|
## 0.4.2 — 2025-04-14
|
|
14
20
|
|
|
15
21
|
_This version does not introduce any user-facing changes._
|
package/android/build.gradle
CHANGED
|
@@ -3,8 +3,11 @@ package expo.modules.audio
|
|
|
3
3
|
import android.Manifest
|
|
4
4
|
import android.content.Context
|
|
5
5
|
import android.content.pm.PackageManager
|
|
6
|
+
import android.media.AudioAttributes
|
|
7
|
+
import android.media.AudioFocusRequest
|
|
6
8
|
import android.media.AudioManager
|
|
7
9
|
import android.net.Uri
|
|
10
|
+
import android.os.Build
|
|
8
11
|
import android.util.Log
|
|
9
12
|
import androidx.core.content.ContextCompat
|
|
10
13
|
import androidx.media3.common.C.CONTENT_TYPE_DASH
|
|
@@ -49,6 +52,83 @@ class AudioModule : Module() {
|
|
|
49
52
|
private var staysActiveInBackground = false
|
|
50
53
|
private var audioEnabled = true
|
|
51
54
|
private var shouldRouteThroughEarpiece = false
|
|
55
|
+
private var focusAcquired = false
|
|
56
|
+
private var interruptionMode: InterruptionMode? = null
|
|
57
|
+
|
|
58
|
+
private var audioFocusRequest: AudioFocusRequest? = null
|
|
59
|
+
private val audioFocusChangeListener = AudioManager.OnAudioFocusChangeListener { focusChange ->
|
|
60
|
+
when (focusChange) {
|
|
61
|
+
AudioManager.AUDIOFOCUS_LOSS,
|
|
62
|
+
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT -> {
|
|
63
|
+
focusAcquired = false
|
|
64
|
+
players.values.forEach {
|
|
65
|
+
it.player.pause()
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK -> {
|
|
70
|
+
focusAcquired = false
|
|
71
|
+
if (interruptionMode == InterruptionMode.DUCK_OTHERS) {
|
|
72
|
+
players.values.forEach {
|
|
73
|
+
it.player.volume /= 2f
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
AudioManager.AUDIOFOCUS_GAIN -> {
|
|
79
|
+
focusAcquired = true
|
|
80
|
+
players.values.forEach {
|
|
81
|
+
it.setVolume(it.previousVolume)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private fun requestAudioFocus() {
|
|
88
|
+
if (focusAcquired || !audioEnabled) {
|
|
89
|
+
return
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
val result = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
93
|
+
val requestType = interruptionMode?.let {
|
|
94
|
+
if (it == InterruptionMode.DO_NOT_MIX) {
|
|
95
|
+
AudioManager.AUDIOFOCUS_GAIN
|
|
96
|
+
} else {
|
|
97
|
+
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
|
|
98
|
+
}
|
|
99
|
+
} ?: AudioManager.AUDIOFOCUS_GAIN
|
|
100
|
+
val audioFocusRequest = AudioFocusRequest.Builder(requestType).run {
|
|
101
|
+
setAudioAttributes(
|
|
102
|
+
AudioAttributes.Builder()
|
|
103
|
+
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
|
|
104
|
+
.build()
|
|
105
|
+
)
|
|
106
|
+
setAcceptsDelayedFocusGain(true)
|
|
107
|
+
setOnAudioFocusChangeListener(audioFocusChangeListener)
|
|
108
|
+
build()
|
|
109
|
+
}
|
|
110
|
+
audioFocusRequest?.let {
|
|
111
|
+
audioManager.requestAudioFocus(it)
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
audioManager.requestAudioFocus(audioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
|
|
118
|
+
Log.e(TAG, "Audio focus request failed")
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
private fun releaseAudioFocus() {
|
|
123
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
124
|
+
audioFocusRequest?.let {
|
|
125
|
+
audioManager.abandonAudioFocusRequest(it)
|
|
126
|
+
}
|
|
127
|
+
} else {
|
|
128
|
+
audioManager.abandonAudioFocus(audioFocusChangeListener)
|
|
129
|
+
}
|
|
130
|
+
focusAcquired = false
|
|
131
|
+
}
|
|
52
132
|
|
|
53
133
|
override fun definition() = ModuleDefinition {
|
|
54
134
|
Name("ExpoAudio")
|
|
@@ -59,6 +139,7 @@ class AudioModule : Module() {
|
|
|
59
139
|
|
|
60
140
|
AsyncFunction("setAudioModeAsync") { mode: AudioMode ->
|
|
61
141
|
staysActiveInBackground = mode.shouldPlayInBackground
|
|
142
|
+
interruptionMode = mode.interruptionMode
|
|
62
143
|
updatePlaySoundThroughEarpiece(mode.shouldRouteThroughEarpiece ?: false)
|
|
63
144
|
}
|
|
64
145
|
|
|
@@ -70,6 +151,7 @@ class AudioModule : Module() {
|
|
|
70
151
|
if (it.player.isPlaying) {
|
|
71
152
|
it.player.pause()
|
|
72
153
|
}
|
|
154
|
+
releaseAudioFocus()
|
|
73
155
|
}
|
|
74
156
|
}
|
|
75
157
|
}
|
|
@@ -87,6 +169,7 @@ class AudioModule : Module() {
|
|
|
87
169
|
if (!appIsPaused) {
|
|
88
170
|
appIsPaused = true
|
|
89
171
|
if (!staysActiveInBackground) {
|
|
172
|
+
releaseAudioFocus()
|
|
90
173
|
players.values.forEach { player ->
|
|
91
174
|
if (player.player.isPlaying) {
|
|
92
175
|
player.isPaused = true
|
|
@@ -107,6 +190,7 @@ class AudioModule : Module() {
|
|
|
107
190
|
if (appIsPaused) {
|
|
108
191
|
appIsPaused = false
|
|
109
192
|
if (!staysActiveInBackground) {
|
|
193
|
+
requestAudioFocus()
|
|
110
194
|
players.values.forEach { player ->
|
|
111
195
|
if (player.isPaused) {
|
|
112
196
|
player.isPaused = false
|
|
@@ -129,12 +213,13 @@ class AudioModule : Module() {
|
|
|
129
213
|
|
|
130
214
|
OnDestroy {
|
|
131
215
|
appContext.mainQueue.launch {
|
|
132
|
-
|
|
133
|
-
|
|
216
|
+
releaseAudioFocus()
|
|
217
|
+
players.values.forEach {
|
|
218
|
+
it.player.stop()
|
|
134
219
|
}
|
|
135
220
|
|
|
136
|
-
|
|
137
|
-
|
|
221
|
+
recorders.values.forEach {
|
|
222
|
+
it.stopRecording()
|
|
138
223
|
}
|
|
139
224
|
}
|
|
140
225
|
}
|
|
@@ -246,6 +331,9 @@ class AudioModule : Module() {
|
|
|
246
331
|
return@Function
|
|
247
332
|
}
|
|
248
333
|
runOnMain {
|
|
334
|
+
if (!focusAcquired && players.values.any { it.player.isPlaying }) {
|
|
335
|
+
requestAudioFocus()
|
|
336
|
+
}
|
|
249
337
|
ref.player.play()
|
|
250
338
|
}
|
|
251
339
|
}
|
|
@@ -264,6 +352,9 @@ class AudioModule : Module() {
|
|
|
264
352
|
mediaSource?.let {
|
|
265
353
|
ref.setMediaSource(it)
|
|
266
354
|
if (wasPlaying) {
|
|
355
|
+
if (!focusAcquired) {
|
|
356
|
+
requestAudioFocus()
|
|
357
|
+
}
|
|
267
358
|
ref.player.play()
|
|
268
359
|
}
|
|
269
360
|
}
|
|
@@ -39,6 +39,7 @@ class AudioPlayer(
|
|
|
39
39
|
) : SharedRef<ExoPlayer>(
|
|
40
40
|
ExoPlayer.Builder(context)
|
|
41
41
|
.setLooper(context.mainLooper)
|
|
42
|
+
.setAudioAttributes(AudioAttributes.DEFAULT, false)
|
|
42
43
|
.build(),
|
|
43
44
|
appContext
|
|
44
45
|
) {
|
|
@@ -60,7 +61,6 @@ class AudioPlayer(
|
|
|
60
61
|
val duration get() = if (player.duration != C.TIME_UNSET) player.duration / 1000f else 0f
|
|
61
62
|
|
|
62
63
|
init {
|
|
63
|
-
player.setAudioAttributes(AudioAttributes.DEFAULT, true)
|
|
64
64
|
addPlayerListeners()
|
|
65
65
|
source?.let {
|
|
66
66
|
setMediaSource(source)
|
|
@@ -13,7 +13,8 @@ class AudioSource(
|
|
|
13
13
|
|
|
14
14
|
class AudioMode(
|
|
15
15
|
@Field val shouldPlayInBackground: Boolean = false,
|
|
16
|
-
@Field val shouldRouteThroughEarpiece: Boolean
|
|
16
|
+
@Field val shouldRouteThroughEarpiece: Boolean?,
|
|
17
|
+
@Field val interruptionMode: InterruptionMode?
|
|
17
18
|
) : Record
|
|
18
19
|
|
|
19
20
|
// Data class because we want `equals`
|
|
@@ -75,3 +76,8 @@ enum class AndroidAudioEncoder(val value: String) : Enumerable {
|
|
|
75
76
|
AAC_ELD -> MediaRecorder.AudioEncoder.AAC_ELD
|
|
76
77
|
}
|
|
77
78
|
}
|
|
79
|
+
|
|
80
|
+
enum class InterruptionMode(val value: String) : Enumerable {
|
|
81
|
+
DO_NOT_MIX("doNotMix"),
|
|
82
|
+
DUCK_OTHERS("duckOthers")
|
|
83
|
+
}
|
package/build/Audio.types.d.ts
CHANGED
|
@@ -254,6 +254,12 @@ export type AudioMode = {
|
|
|
254
254
|
* @platform ios
|
|
255
255
|
*/
|
|
256
256
|
interruptionMode: InterruptionMode;
|
|
257
|
+
/**
|
|
258
|
+
* Determines how the audio session interacts with other sessions on Android.
|
|
259
|
+
*
|
|
260
|
+
* @platform android
|
|
261
|
+
*/
|
|
262
|
+
interruptionModeAndroid: InterruptionModeAndroid;
|
|
257
263
|
/**
|
|
258
264
|
* Whether the audio session allows recording.
|
|
259
265
|
*
|
|
@@ -273,4 +279,5 @@ export type AudioMode = {
|
|
|
273
279
|
shouldRouteThroughEarpiece: boolean;
|
|
274
280
|
};
|
|
275
281
|
export type InterruptionMode = 'mixWithOthers' | 'doNotMix' | 'duckOthers';
|
|
282
|
+
export type InterruptionModeAndroid = 'doNotMix' | 'duckOthers';
|
|
276
283
|
//# sourceMappingURL=Audio.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Audio.types.d.ts","sourceRoot":"","sources":["../src/Audio.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Audio.types.d.ts","sourceRoot":"","sources":["../src/Audio.types.ts"],"names":[],"mappings":"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"}
|
package/build/Audio.types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Audio.types.js","sourceRoot":"","sources":["../src/Audio.types.ts"],"names":[],"mappings":"AAyFA,eAAe;AACf;;GAEG;AACH,MAAM,CAAN,IAAY,eAmCX;AAnCD,WAAY,eAAe;IACzB,qCAAkB,CAAA;IAClB,+BAAY,CAAA;IACZ,oCAAmB,CAAA;IACnB,qCAAkB,CAAA;IAClB,oCAAiB,CAAA;IACjB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,uCAAoB,CAAA;IACpB,iCAAc,CAAA;IACd,iCAAc,CAAA;IACd,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,mCAAgB,CAAA;IAChB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,yCAAsB,CAAA;IACtB,uCAAoB,CAAA;IACpB,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;IACzB,2CAAwB,CAAA;IACxB,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;IACzB,+BAAY,CAAA;IACZ,kCAAe,CAAA;IACf,mCAAgB,CAAA;IAChB,gCAAa,CAAA;IACb,4EAAwB,CAAA;IACxB,8EAAyB,CAAA;IACzB,gCAAa,CAAA;IACb,uCAAoB,CAAA;AACtB,CAAC,EAnCW,eAAe,KAAf,eAAe,QAmC1B;AAED,eAAe;AACf,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6CAAO,CAAA;IACP,8CAAU,CAAA;IACV,oDAAa,CAAA;IACb,gDAAW,CAAA;IACX,+CAAU,CAAA;AACZ,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB","sourcesContent":["// @docsMissing\nexport type AudioSource =\n | string\n | number\n | null\n | {\n /**\n * A string representing the resource identifier for the audio,\n * which could be an HTTPS address, a local file path, or the name of a static audio file resource.\n */\n uri?: string;\n /**\n * The asset ID of a local audio asset, acquired with the `require` function.\n * This property is exclusive with the `uri` property. When both are present, the `assetId` will be ignored.\n */\n assetId?: number;\n /**\n * An object representing the HTTP headers to send along with the request for a remote audio source.\n * On web requires the `Access-Control-Allow-Origin` header returned by the server to include the current domain.\n */\n headers?: Record<string, string>;\n };\n\nexport type RecordingInput = {\n name: string;\n type: string;\n uid: string;\n};\n\n// @docsMissing\nexport type PitchCorrectionQuality = 'low' | 'medium' | 'high';\n\n// @docsMissing\nexport type AudioStatus = {\n id: number;\n currentTime: number;\n playbackState: string;\n timeControlStatus: string;\n reasonForWaitingToPlay: string;\n mute: boolean;\n duration: number;\n playing: boolean;\n loop: boolean;\n didJustFinish: boolean;\n isBuffering: boolean;\n isLoaded: boolean;\n playbackRate: number;\n shouldCorrectPitch: boolean;\n};\n\n// @docsMissing\nexport type RecordingStatus = {\n id: number;\n isFinished: boolean;\n hasError: boolean;\n error: string | null;\n url: string | null;\n};\n\n// @docsMissing\nexport type RecorderState = {\n canRecord: boolean;\n isRecording: boolean;\n durationMillis: number;\n mediaServicesDidReset: boolean;\n metering?: number;\n url: string | null;\n};\n\n// @docsMissing\n/**\n * @platform android\n */\nexport type AndroidOutputFormat =\n | 'default'\n | '3gp'\n | 'mpeg4'\n | 'amrnb'\n | 'amrwb'\n | 'aac_adts'\n | 'mpeg2ts'\n | 'webm';\n\n// @docsMissing\n/**\n * @platform android\n */\nexport type AndroidAudioEncoder = 'default' | 'amr_nb' | 'amr_wb' | 'aac' | 'he_aac' | 'aac_eld';\n\n// @docsMissing\n/**\n * @platform ios\n */\nexport enum IOSOutputFormat {\n LINEARPCM = 'lpcm',\n AC3 = 'ac-3',\n '60958AC3' = 'cac3',\n APPLEIMA4 = 'ima4',\n MPEG4AAC = 'aac ',\n MPEG4CELP = 'celp',\n MPEG4HVXC = 'hvxc',\n MPEG4TWINVQ = 'twvq',\n MACE3 = 'MAC3',\n MACE6 = 'MAC6',\n ULAW = 'ulaw',\n ALAW = 'alaw',\n QDESIGN = 'QDMC',\n QDESIGN2 = 'QDM2',\n QUALCOMM = 'Qclp',\n MPEGLAYER1 = '.mp1',\n MPEGLAYER2 = '.mp2',\n MPEGLAYER3 = '.mp3',\n APPLELOSSLESS = 'alac',\n MPEG4AAC_HE = 'aach',\n MPEG4AAC_LD = 'aacl',\n MPEG4AAC_ELD = 'aace',\n MPEG4AAC_ELD_SBR = 'aacf',\n MPEG4AAC_ELD_V2 = 'aacg',\n MPEG4AAC_HE_V2 = 'aacp',\n MPEG4AAC_SPATIAL = 'aacs',\n AMR = 'samr',\n AMR_WB = 'sawb',\n AUDIBLE = 'AUDB',\n ILBC = 'ilbc',\n DVIINTELIMA = 0x6d730011,\n MICROSOFTGSM = 0x6d730031,\n AES3 = 'aes3',\n ENHANCEDAC3 = 'ec-3',\n}\n\n// @docsMissing\nexport enum AudioQuality {\n MIN = 0,\n LOW = 0x20,\n MEDIUM = 0x40,\n HIGH = 0x60,\n MAX = 0x7f,\n}\n\n// @docsMissing\nexport type BitRateStrategy = 'constant' | 'longTermAverage' | 'variableConstrained' | 'variable';\n\nexport type RecordingOptions = {\n /**\n * A boolean that determines whether audio level information will be part of the status object under the \"metering\" key.\n */\n isMeteringEnabled?: boolean;\n /**\n * The desired file extension.\n *\n * @example .caf\n */\n extension: string;\n /**\n * The desired sample rate.\n *\n * @example 44100\n */\n sampleRate: number;\n /**\n * The desired number of channels.\n *\n * @example 2\n */\n numberOfChannels: number;\n /**\n * The desired bit rate.\n *\n * @example 128000\n */\n bitRate: number;\n /**\n * Recording options for the Android platform.\n * @platform android\n */\n android: RecordingOptionsAndroid;\n /**\n * Recording options for the iOS platform.\n * @platform ios\n */\n ios: RecordingOptionsIos;\n /**\n * Recording options for the Web platform.\n * @platform web\n */\n web?: RecordingOptionsWeb;\n};\n\n// @docsMissing\n/**\n * @platform web\n */\nexport type RecordingOptionsWeb = {\n mimeType?: string;\n bitsPerSecond?: number;\n};\n\n// @docsMissing\n/**\n * @platform ios\n */\nexport type RecordingOptionsIos = {\n /**\n * The desired file extension.\n *\n * @example .caf\n */\n extension?: string;\n /**\n * The desired sample rate.\n *\n * @example 44100\n */\n sampleRate?: number;\n /**\n * The desired file format. See the [`IOSOutputFormat`](#iosoutputformat) enum for all valid values.\n */\n outputFormat?: string | IOSOutputFormat | number;\n /**\n * The desired audio quality. See the [`AudioQuality`](#audioquality) enum for all valid values.\n */\n audioQuality: AudioQuality | number;\n /**\n * The desired bit rate strategy. See the next section for an enumeration of all valid values of `bitRateStrategy`.\n */\n bitRateStrategy?: number;\n /**\n * The desired bit depth hint.\n *\n * @example 16\n */\n bitDepthHint?: number;\n /**\n * The desired PCM bit depth.\n *\n * @example 16\n */\n linearPCMBitDepth?: number;\n /**\n * A boolean describing if the PCM data should be formatted in big endian.\n */\n linearPCMIsBigEndian?: boolean;\n /**\n * A boolean describing if the PCM data should be encoded in floating point or integral values.\n */\n linearPCMIsFloat?: boolean;\n};\n\n// @docsMissing\n/**\n * @platform android\n */\nexport type RecordingOptionsAndroid = {\n /**\n * The desired file extension.\n *\n * @example .caf\n */\n extension?: string;\n /**\n * The desired sample rate.\n *\n * @example 44100\n */\n sampleRate?: number;\n /**\n * The desired file format. See the [`AndroidOutputFormat`](#androidoutputformat) enum for all valid values.\n */\n outputFormat: AndroidOutputFormat;\n /**\n * The desired audio encoder. See the [`AndroidAudioEncoder`](#androidaudioencoder) enum for all valid values.\n */\n audioEncoder: AndroidAudioEncoder;\n /**\n * The desired maximum file size in bytes, after which the recording will stop (but `stopAndUnloadAsync()` must still\n * be called after this point).\n *\n * @example\n * `65536`\n */\n maxFileSize?: number;\n};\n\nexport type AudioMode = {\n /**\n * Determines if audio playback is allowed when the device is in silent mode.\n *\n * @platform ios\n */\n playsInSilentMode: boolean;\n /**\n * Determines how the audio session interacts with other sessions.\n *\n * @platform ios\n */\n interruptionMode: InterruptionMode;\n /**\n * Whether the audio session allows recording.\n *\n * @default false\n * @platform ios\n */\n allowsRecording: boolean;\n /**\n * Whether the audio session stays active when the app moves to the background.\n * @default false\n */\n shouldPlayInBackground: boolean;\n /**\n * Whether the audio should route through the earpiece.\n * @platform android\n */\n shouldRouteThroughEarpiece: boolean;\n};\n\n// @docsMissing\nexport type InterruptionMode = 'mixWithOthers' | 'doNotMix' | 'duckOthers';\n"]}
|
|
1
|
+
{"version":3,"file":"Audio.types.js","sourceRoot":"","sources":["../src/Audio.types.ts"],"names":[],"mappings":"AAyFA,eAAe;AACf;;GAEG;AACH,MAAM,CAAN,IAAY,eAmCX;AAnCD,WAAY,eAAe;IACzB,qCAAkB,CAAA;IAClB,+BAAY,CAAA;IACZ,oCAAmB,CAAA;IACnB,qCAAkB,CAAA;IAClB,oCAAiB,CAAA;IACjB,qCAAkB,CAAA;IAClB,qCAAkB,CAAA;IAClB,uCAAoB,CAAA;IACpB,iCAAc,CAAA;IACd,iCAAc,CAAA;IACd,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,mCAAgB,CAAA;IAChB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;IACnB,yCAAsB,CAAA;IACtB,uCAAoB,CAAA;IACpB,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;IACzB,2CAAwB,CAAA;IACxB,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;IACzB,+BAAY,CAAA;IACZ,kCAAe,CAAA;IACf,mCAAgB,CAAA;IAChB,gCAAa,CAAA;IACb,4EAAwB,CAAA;IACxB,8EAAyB,CAAA;IACzB,gCAAa,CAAA;IACb,uCAAoB,CAAA;AACtB,CAAC,EAnCW,eAAe,KAAf,eAAe,QAmC1B;AAED,eAAe;AACf,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6CAAO,CAAA;IACP,8CAAU,CAAA;IACV,oDAAa,CAAA;IACb,gDAAW,CAAA;IACX,+CAAU,CAAA;AACZ,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB","sourcesContent":["// @docsMissing\nexport type AudioSource =\n | string\n | number\n | null\n | {\n /**\n * A string representing the resource identifier for the audio,\n * which could be an HTTPS address, a local file path, or the name of a static audio file resource.\n */\n uri?: string;\n /**\n * The asset ID of a local audio asset, acquired with the `require` function.\n * This property is exclusive with the `uri` property. When both are present, the `assetId` will be ignored.\n */\n assetId?: number;\n /**\n * An object representing the HTTP headers to send along with the request for a remote audio source.\n * On web requires the `Access-Control-Allow-Origin` header returned by the server to include the current domain.\n */\n headers?: Record<string, string>;\n };\n\nexport type RecordingInput = {\n name: string;\n type: string;\n uid: string;\n};\n\n// @docsMissing\nexport type PitchCorrectionQuality = 'low' | 'medium' | 'high';\n\n// @docsMissing\nexport type AudioStatus = {\n id: number;\n currentTime: number;\n playbackState: string;\n timeControlStatus: string;\n reasonForWaitingToPlay: string;\n mute: boolean;\n duration: number;\n playing: boolean;\n loop: boolean;\n didJustFinish: boolean;\n isBuffering: boolean;\n isLoaded: boolean;\n playbackRate: number;\n shouldCorrectPitch: boolean;\n};\n\n// @docsMissing\nexport type RecordingStatus = {\n id: number;\n isFinished: boolean;\n hasError: boolean;\n error: string | null;\n url: string | null;\n};\n\n// @docsMissing\nexport type RecorderState = {\n canRecord: boolean;\n isRecording: boolean;\n durationMillis: number;\n mediaServicesDidReset: boolean;\n metering?: number;\n url: string | null;\n};\n\n// @docsMissing\n/**\n * @platform android\n */\nexport type AndroidOutputFormat =\n | 'default'\n | '3gp'\n | 'mpeg4'\n | 'amrnb'\n | 'amrwb'\n | 'aac_adts'\n | 'mpeg2ts'\n | 'webm';\n\n// @docsMissing\n/**\n * @platform android\n */\nexport type AndroidAudioEncoder = 'default' | 'amr_nb' | 'amr_wb' | 'aac' | 'he_aac' | 'aac_eld';\n\n// @docsMissing\n/**\n * @platform ios\n */\nexport enum IOSOutputFormat {\n LINEARPCM = 'lpcm',\n AC3 = 'ac-3',\n '60958AC3' = 'cac3',\n APPLEIMA4 = 'ima4',\n MPEG4AAC = 'aac ',\n MPEG4CELP = 'celp',\n MPEG4HVXC = 'hvxc',\n MPEG4TWINVQ = 'twvq',\n MACE3 = 'MAC3',\n MACE6 = 'MAC6',\n ULAW = 'ulaw',\n ALAW = 'alaw',\n QDESIGN = 'QDMC',\n QDESIGN2 = 'QDM2',\n QUALCOMM = 'Qclp',\n MPEGLAYER1 = '.mp1',\n MPEGLAYER2 = '.mp2',\n MPEGLAYER3 = '.mp3',\n APPLELOSSLESS = 'alac',\n MPEG4AAC_HE = 'aach',\n MPEG4AAC_LD = 'aacl',\n MPEG4AAC_ELD = 'aace',\n MPEG4AAC_ELD_SBR = 'aacf',\n MPEG4AAC_ELD_V2 = 'aacg',\n MPEG4AAC_HE_V2 = 'aacp',\n MPEG4AAC_SPATIAL = 'aacs',\n AMR = 'samr',\n AMR_WB = 'sawb',\n AUDIBLE = 'AUDB',\n ILBC = 'ilbc',\n DVIINTELIMA = 0x6d730011,\n MICROSOFTGSM = 0x6d730031,\n AES3 = 'aes3',\n ENHANCEDAC3 = 'ec-3',\n}\n\n// @docsMissing\nexport enum AudioQuality {\n MIN = 0,\n LOW = 0x20,\n MEDIUM = 0x40,\n HIGH = 0x60,\n MAX = 0x7f,\n}\n\n// @docsMissing\nexport type BitRateStrategy = 'constant' | 'longTermAverage' | 'variableConstrained' | 'variable';\n\nexport type RecordingOptions = {\n /**\n * A boolean that determines whether audio level information will be part of the status object under the \"metering\" key.\n */\n isMeteringEnabled?: boolean;\n /**\n * The desired file extension.\n *\n * @example .caf\n */\n extension: string;\n /**\n * The desired sample rate.\n *\n * @example 44100\n */\n sampleRate: number;\n /**\n * The desired number of channels.\n *\n * @example 2\n */\n numberOfChannels: number;\n /**\n * The desired bit rate.\n *\n * @example 128000\n */\n bitRate: number;\n /**\n * Recording options for the Android platform.\n * @platform android\n */\n android: RecordingOptionsAndroid;\n /**\n * Recording options for the iOS platform.\n * @platform ios\n */\n ios: RecordingOptionsIos;\n /**\n * Recording options for the Web platform.\n * @platform web\n */\n web?: RecordingOptionsWeb;\n};\n\n// @docsMissing\n/**\n * @platform web\n */\nexport type RecordingOptionsWeb = {\n mimeType?: string;\n bitsPerSecond?: number;\n};\n\n// @docsMissing\n/**\n * @platform ios\n */\nexport type RecordingOptionsIos = {\n /**\n * The desired file extension.\n *\n * @example .caf\n */\n extension?: string;\n /**\n * The desired sample rate.\n *\n * @example 44100\n */\n sampleRate?: number;\n /**\n * The desired file format. See the [`IOSOutputFormat`](#iosoutputformat) enum for all valid values.\n */\n outputFormat?: string | IOSOutputFormat | number;\n /**\n * The desired audio quality. See the [`AudioQuality`](#audioquality) enum for all valid values.\n */\n audioQuality: AudioQuality | number;\n /**\n * The desired bit rate strategy. See the next section for an enumeration of all valid values of `bitRateStrategy`.\n */\n bitRateStrategy?: number;\n /**\n * The desired bit depth hint.\n *\n * @example 16\n */\n bitDepthHint?: number;\n /**\n * The desired PCM bit depth.\n *\n * @example 16\n */\n linearPCMBitDepth?: number;\n /**\n * A boolean describing if the PCM data should be formatted in big endian.\n */\n linearPCMIsBigEndian?: boolean;\n /**\n * A boolean describing if the PCM data should be encoded in floating point or integral values.\n */\n linearPCMIsFloat?: boolean;\n};\n\n// @docsMissing\n/**\n * @platform android\n */\nexport type RecordingOptionsAndroid = {\n /**\n * The desired file extension.\n *\n * @example .caf\n */\n extension?: string;\n /**\n * The desired sample rate.\n *\n * @example 44100\n */\n sampleRate?: number;\n /**\n * The desired file format. See the [`AndroidOutputFormat`](#androidoutputformat) enum for all valid values.\n */\n outputFormat: AndroidOutputFormat;\n /**\n * The desired audio encoder. See the [`AndroidAudioEncoder`](#androidaudioencoder) enum for all valid values.\n */\n audioEncoder: AndroidAudioEncoder;\n /**\n * The desired maximum file size in bytes, after which the recording will stop (but `stopAndUnloadAsync()` must still\n * be called after this point).\n *\n * @example\n * `65536`\n */\n maxFileSize?: number;\n};\n\nexport type AudioMode = {\n /**\n * Determines if audio playback is allowed when the device is in silent mode.\n *\n * @platform ios\n */\n playsInSilentMode: boolean;\n /**\n * Determines how the audio session interacts with other sessions.\n *\n * @platform ios\n */\n interruptionMode: InterruptionMode;\n /**\n * Determines how the audio session interacts with other sessions on Android.\n *\n * @platform android\n */\n interruptionModeAndroid: InterruptionModeAndroid;\n /**\n * Whether the audio session allows recording.\n *\n * @default false\n * @platform ios\n */\n allowsRecording: boolean;\n /**\n * Whether the audio session stays active when the app moves to the background.\n * @default false\n */\n shouldPlayInBackground: boolean;\n /**\n * Whether the audio should route through the earpiece.\n * @platform android\n */\n shouldRouteThroughEarpiece: boolean;\n};\n\n// @docsMissing\nexport type InterruptionMode = 'mixWithOthers' | 'doNotMix' | 'duckOthers';\n\n// @docsMissing\nexport type InterruptionModeAndroid = 'doNotMix' | 'duckOthers';\n"]}
|
package/build/ExpoAudio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoAudio.d.ts","sourceRoot":"","sources":["../src/ExpoAudio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAI9E,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAS/D,wBAAgB,cAAc,CAC5B,MAAM,GAAE,WAAkB,EAC1B,cAAc,GAAE,MAAY,GAC3B,WAAW,CAMb;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAGrE;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,QAShG;AAGD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACjD,aAAa,CAcf;AAGD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAY,iBAYpF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,GAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAW,EACnD,cAAc,GAAE,MAAY,GAC3B,WAAW,CAGb;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAGD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"ExpoAudio.d.ts","sourceRoot":"","sources":["../src/ExpoAudio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,mBAAmB,CAAC;AAIjF,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAI9E,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAS/D,wBAAgB,cAAc,CAC5B,MAAM,GAAE,WAAkB,EAC1B,cAAc,GAAE,MAAY,GAC3B,WAAW,CAMb;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAGrE;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,QAShG;AAGD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACjD,aAAa,CAcf;AAGD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAY,iBAYpF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,GAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAW,EACnD,cAAc,GAAE,MAAY,GAC3B,WAAW,CAGb;AAGD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AAGD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAU/E;AAGD,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAEpF;AAGD,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAEhF;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/build/ExpoAudio.js
CHANGED
|
@@ -82,6 +82,7 @@ export async function setAudioModeAsync(mode) {
|
|
|
82
82
|
: {
|
|
83
83
|
shouldPlayInBackground: mode.shouldPlayInBackground,
|
|
84
84
|
shouldRouteThroughEarpiece: mode.shouldRouteThroughEarpiece,
|
|
85
|
+
interruptionMode: mode.interruptionModeAndroid,
|
|
85
86
|
};
|
|
86
87
|
return await AudioModule.setAudioModeAsync(audioMode);
|
|
87
88
|
}
|
package/build/ExpoAudio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoAudio.js","sourceRoot":"","sources":["../src/ExpoAudio.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ExpoAudio.js","sourceRoot":"","sources":["../src/ExpoAudio.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEvent } from 'expo';\nimport { PermissionResponse, useReleasingSharedObject } from 'expo-modules-core';\nimport { useEffect, useState, useMemo } from 'react';\nimport { Platform } from 'react-native';\n\nimport {\n AudioMode,\n AudioSource,\n AudioStatus,\n RecorderState,\n RecordingOptions,\n RecordingStatus,\n} from './Audio.types';\nimport AudioModule from './AudioModule';\nimport { AudioPlayer, AudioRecorder, AudioSample } from './AudioModule.types';\nimport { createRecordingOptions } from './utils/options';\nimport { resolveSource } from './utils/resolveSource';\n\nexport const PLAYBACK_STATUS_UPDATE = 'playbackStatusUpdate';\nexport const AUDIO_SAMPLE_UPDATE = 'audioSampleUpdate';\nexport const RECORDING_STATUS_UPDATE = 'recordingStatusUpdate';\n\n// TODO: Temporary solution until we develop a way of overriding prototypes that won't break the lazy loading of the module.\nconst replace = AudioModule.AudioPlayer.prototype.replace;\nAudioModule.AudioPlayer.prototype.replace = function (source: AudioSource) {\n return replace.call(this, resolveSource(source));\n};\n\n// @docsMissing\nexport function useAudioPlayer(\n source: AudioSource = null,\n updateInterval: number = 500\n): AudioPlayer {\n const parsedSource = resolveSource(source);\n return useReleasingSharedObject(\n () => new AudioModule.AudioPlayer(parsedSource, updateInterval),\n [JSON.stringify(parsedSource)]\n );\n}\n\n// @docsMissing\nexport function useAudioPlayerStatus(player: AudioPlayer): AudioStatus {\n const currentStatus = useMemo(() => player.currentStatus, [player.id]);\n return useEvent(player, PLAYBACK_STATUS_UPDATE, currentStatus);\n}\n\n// @docsMissing\nexport function useAudioSampleListener(player: AudioPlayer, listener: (data: AudioSample) => void) {\n useEffect(() => {\n if (!player.isAudioSamplingSupported) {\n return;\n }\n player.setAudioSamplingEnabled(true);\n const subscription = player.addListener(AUDIO_SAMPLE_UPDATE, listener);\n return () => subscription.remove();\n }, [player.id]);\n}\n\n// @docsMissing\nexport function useAudioRecorder(\n options: RecordingOptions,\n statusListener?: (status: RecordingStatus) => void\n): AudioRecorder {\n const platformOptions = createRecordingOptions(options);\n const recorder = useReleasingSharedObject(() => {\n return new AudioModule.AudioRecorder(platformOptions);\n }, [JSON.stringify(platformOptions)]);\n\n useEffect(() => {\n const subscription = recorder.addListener(RECORDING_STATUS_UPDATE, (status) => {\n statusListener?.(status);\n });\n return () => subscription.remove();\n }, [recorder.id]);\n\n return recorder;\n}\n\n// @docsMissing\nexport function useAudioRecorderState(recorder: AudioRecorder, interval: number = 500) {\n const [state, setState] = useState<RecorderState>(recorder.getStatus());\n\n useEffect(() => {\n const int = setInterval(() => {\n setState(recorder.getStatus());\n }, interval);\n\n return () => clearInterval(int);\n }, [recorder.id]);\n\n return state;\n}\n\n/**\n * Creates an instance of an `AudioPlayer` that doesn't release automatically.\n *\n * > **info** For most use cases you should use the [`useAudioPlayer`](#useaudioplayersource-updateinterval) hook instead.\n * > See the [Using the `AudioPlayer` directly](#using-the-audioplayer-directly) section for more details.\n * @param source\n * @param updateInterval\n */\nexport function createAudioPlayer(\n source: AudioSource | string | number | null = null,\n updateInterval: number = 500\n): AudioPlayer {\n const parsedSource = resolveSource(source);\n return new AudioModule.AudioPlayer(parsedSource, updateInterval);\n}\n\n// @docsMissing\nexport async function setIsAudioActiveAsync(active: boolean): Promise<void> {\n return await AudioModule.setIsAudioActiveAsync(active);\n}\n\n// @docsMissing\nexport async function setAudioModeAsync(mode: Partial<AudioMode>): Promise<void> {\n const audioMode: Partial<AudioMode> =\n Platform.OS === 'ios'\n ? mode\n : {\n shouldPlayInBackground: mode.shouldPlayInBackground,\n shouldRouteThroughEarpiece: mode.shouldRouteThroughEarpiece,\n interruptionMode: mode.interruptionModeAndroid,\n };\n return await AudioModule.setAudioModeAsync(audioMode);\n}\n\n// @docsMissing\nexport async function requestRecordingPermissionsAsync(): Promise<PermissionResponse> {\n return await AudioModule.requestRecordingPermissionsAsync();\n}\n\n// @docsMissing\nexport async function getRecordingPermissionsAsync(): Promise<PermissionResponse> {\n return await AudioModule.getRecordingPermissionsAsync();\n}\n\nexport { AudioModule };\n"]}
|
package/expo-module.config.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2fb5759d28c945fe08c1530cb736aaf4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f759ea485190b58c8e59734d263dccab32dd7110
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
d9806afca725f0656507326bc8b0d7db75e75ccd2ce4e1ea626209cef8909756
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
62186f8682284e739c2bad57001ab13df39e5aeaf2ba3de1414ab6022706b6a2aa27d885e0e3461ec8d9046432a99f7768aaf543254a813e64857e20afb8f92d
|
package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.3/expo.modules.audio-0.4.3.aar
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f9e65a4d3c93f2b651a29f6d1c9a25e1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
afba18ce78ec8af3fd7e1f057c7af8de0409ec37
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b454e054c8b967eba2af8fa695eb3e288a5ab03855945a5b904267a81e814e91
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a0b3065f75bfe4f2b39cb9ebd0d8c1852643f94409f94560c2b33f033fc3d4f07da0406bbe2a277ac6f110fe7e2de292d07695487513234a82ad102e015802e9
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "expo.modules.audio",
|
|
5
5
|
"module": "expo.modules.audio",
|
|
6
|
-
"version": "0.4.
|
|
6
|
+
"version": "0.4.3",
|
|
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.
|
|
28
|
-
"url": "expo.modules.audio-0.4.
|
|
29
|
-
"size":
|
|
30
|
-
"sha512": "
|
|
31
|
-
"sha256": "
|
|
32
|
-
"sha1": "
|
|
33
|
-
"md5": "
|
|
27
|
+
"name": "expo.modules.audio-0.4.3.aar",
|
|
28
|
+
"url": "expo.modules.audio-0.4.3.aar",
|
|
29
|
+
"size": 184916,
|
|
30
|
+
"sha512": "a0b3065f75bfe4f2b39cb9ebd0d8c1852643f94409f94560c2b33f033fc3d4f07da0406bbe2a277ac6f110fe7e2de292d07695487513234a82ad102e015802e9",
|
|
31
|
+
"sha256": "b454e054c8b967eba2af8fa695eb3e288a5ab03855945a5b904267a81e814e91",
|
|
32
|
+
"sha1": "afba18ce78ec8af3fd7e1f057c7af8de0409ec37",
|
|
33
|
+
"md5": "f9e65a4d3c93f2b651a29f6d1c9a25e1"
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
},
|
|
@@ -95,13 +95,13 @@
|
|
|
95
95
|
],
|
|
96
96
|
"files": [
|
|
97
97
|
{
|
|
98
|
-
"name": "expo.modules.audio-0.4.
|
|
99
|
-
"url": "expo.modules.audio-0.4.
|
|
100
|
-
"size":
|
|
101
|
-
"sha512": "
|
|
102
|
-
"sha256": "
|
|
103
|
-
"sha1": "
|
|
104
|
-
"md5": "
|
|
98
|
+
"name": "expo.modules.audio-0.4.3.aar",
|
|
99
|
+
"url": "expo.modules.audio-0.4.3.aar",
|
|
100
|
+
"size": 184916,
|
|
101
|
+
"sha512": "a0b3065f75bfe4f2b39cb9ebd0d8c1852643f94409f94560c2b33f033fc3d4f07da0406bbe2a277ac6f110fe7e2de292d07695487513234a82ad102e015802e9",
|
|
102
|
+
"sha256": "b454e054c8b967eba2af8fa695eb3e288a5ab03855945a5b904267a81e814e91",
|
|
103
|
+
"sha1": "afba18ce78ec8af3fd7e1f057c7af8de0409ec37",
|
|
104
|
+
"md5": "f9e65a4d3c93f2b651a29f6d1c9a25e1"
|
|
105
105
|
}
|
|
106
106
|
]
|
|
107
107
|
},
|
|
@@ -115,13 +115,13 @@
|
|
|
115
115
|
},
|
|
116
116
|
"files": [
|
|
117
117
|
{
|
|
118
|
-
"name": "expo.modules.audio-0.4.
|
|
119
|
-
"url": "expo.modules.audio-0.4.
|
|
120
|
-
"size":
|
|
121
|
-
"sha512": "
|
|
122
|
-
"sha256": "
|
|
123
|
-
"sha1": "
|
|
124
|
-
"md5": "
|
|
118
|
+
"name": "expo.modules.audio-0.4.3-sources.jar",
|
|
119
|
+
"url": "expo.modules.audio-0.4.3-sources.jar",
|
|
120
|
+
"size": 11770,
|
|
121
|
+
"sha512": "62186f8682284e739c2bad57001ab13df39e5aeaf2ba3de1414ab6022706b6a2aa27d885e0e3461ec8d9046432a99f7768aaf543254a813e64857e20afb8f92d",
|
|
122
|
+
"sha256": "d9806afca725f0656507326bc8b0d7db75e75ccd2ce4e1ea626209cef8909756",
|
|
123
|
+
"sha1": "f759ea485190b58c8e59734d263dccab32dd7110",
|
|
124
|
+
"md5": "2fb5759d28c945fe08c1530cb736aaf4"
|
|
125
125
|
}
|
|
126
126
|
]
|
|
127
127
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c808f2a48b02c97c04a179842019dc51
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b70f8cbcf6fe581020ab5269a266a92590d28eba
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7e96140599698315b7871d1a9d7ffa36db4a5c039ae78fba9e766f6c893cf9f2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
16bdf0ad39b2ec109f3a9473cab87c62c508cd5d42a589ee969b3765a332db7b2725140934fbdc049a19622827990205562dd1a6a1a94fca634284ae2800a620
|
|
@@ -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.
|
|
12
|
+
<version>0.4.3</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
|
+
62f05882180eed6ee2958b880e53ef79
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9c40efe180098d84d1076448477734edb38bc121
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
40d749480c964891fb5882e713b3d9ecc3b4a70d792db851f7e7dcf7d8da36ef
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
23b78972a57e8ade02a913b8402f92ca714c123757706424d4d7937cd02f0ded71b0de96fc158c9d214b77011110c07bfbead6644a448d4fe94f264d0ed2f94a
|
|
@@ -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.
|
|
7
|
-
<release>0.4.
|
|
6
|
+
<latest>0.4.3</latest>
|
|
7
|
+
<release>0.4.3</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>0.4.
|
|
9
|
+
<version>0.4.3</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20250425210752</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ad235da22d1c7a2d0de25929ba70d049
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
af22b3f0329d0a4d32d9fb1422521ca200d7e2cc
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
8a5fb565d1d99570622e07f9a605b263028a558b0796b2caa8b871181559d1d4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
b7142ea73f4e163439713fbad38943277acabcd5cc85b50a79bca49a14a019a521aca15099044924a57da307116d8898e6ec3b1cd19e764e542f0d15225f2267
|
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
|
+
"version": "0.4.3",
|
|
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.
|
|
36
|
+
"expo-module-scripts": "^4.1.5"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"expo": "*",
|
|
40
40
|
"react": "*",
|
|
41
41
|
"react-native": "*"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "3cd208465df78e385ca9380531bbbfe33ca68e81"
|
|
44
44
|
}
|
package/src/Audio.types.ts
CHANGED
|
@@ -294,6 +294,12 @@ export type AudioMode = {
|
|
|
294
294
|
* @platform ios
|
|
295
295
|
*/
|
|
296
296
|
interruptionMode: InterruptionMode;
|
|
297
|
+
/**
|
|
298
|
+
* Determines how the audio session interacts with other sessions on Android.
|
|
299
|
+
*
|
|
300
|
+
* @platform android
|
|
301
|
+
*/
|
|
302
|
+
interruptionModeAndroid: InterruptionModeAndroid;
|
|
297
303
|
/**
|
|
298
304
|
* Whether the audio session allows recording.
|
|
299
305
|
*
|
|
@@ -315,3 +321,6 @@ export type AudioMode = {
|
|
|
315
321
|
|
|
316
322
|
// @docsMissing
|
|
317
323
|
export type InterruptionMode = 'mixWithOthers' | 'doNotMix' | 'duckOthers';
|
|
324
|
+
|
|
325
|
+
// @docsMissing
|
|
326
|
+
export type InterruptionModeAndroid = 'doNotMix' | 'duckOthers';
|
package/src/ExpoAudio.ts
CHANGED
|
@@ -120,6 +120,7 @@ export async function setAudioModeAsync(mode: Partial<AudioMode>): Promise<void>
|
|
|
120
120
|
: {
|
|
121
121
|
shouldPlayInBackground: mode.shouldPlayInBackground,
|
|
122
122
|
shouldRouteThroughEarpiece: mode.shouldRouteThroughEarpiece,
|
|
123
|
+
interruptionMode: mode.interruptionModeAndroid,
|
|
123
124
|
};
|
|
124
125
|
return await AudioModule.setAudioModeAsync(audioMode);
|
|
125
126
|
}
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f4b0fe741ee04dfcf2b58a41d050dd7e
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9325d605d24414168d7471b95c052c041ba0367a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5a6a220721149b8a4e081a68d683b2d36781660d4d195a3b2690241d7e8d1328
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
98b3cac6143e10338c8b38d9876560c93731080fea38c016eca1ffe67e72c7acde098fae38bf6ee8b232d8fe7306d4b9b5caf3ebd8a0f049928a2cbf3a95646e
|
package/local-maven-repo/expo/modules/audio/expo.modules.audio/0.4.2/expo.modules.audio-0.4.2.aar
DELETED
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
8dccebc6f2514af0870fed9b6c244f2c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
719e75a52132d06461128b0c0a1e3302afb09283
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e897766f3c444bc2c74fa302d4530d0a8f58c21601ac35aa6184ba47a24d218f
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
7510b8f05865d812eb2294ffb9f9059e5237fc5f328bed1657c4481b5fda1d91e52bdcf3581a6a0ceb5ec3b3b462ca0b81b79d41c9c3973c7cdb040c20a7dbd2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
005e70f22fc9229bac73e641c07ef3b1
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
425f5932f85aa1b8ccd9425fff5f1dc43ff57c3a
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f42eed775802ace7294271b7d11f4aa1c108b07a5aaf8cd31e902ba661e050cf
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
20dd42e8b6221a472c07d0736f3982530cdaf5c6ea58569a87f0049fef23b9b95816bb8528d289552c581a4930385d065407952f8e74e52837191577e25dbc9c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
475ff16a9e2416370e94c37946875d12
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
42502a0d50e8271624a63f319e8842dd6f10ec10
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1d67dcf1092b04c146c5cc660db0fab817924bccdba793882e182c98b6fcac89
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
493c265fe1285bdd4a091fd4e8bfd94710609eee99ae7ebb8d385bb785e50e5cb9474dfa48eaaaf8f312c0a9bbc58e2ba5a6d7db12bc7ce409ff0da80087eff1
|