@@ -16,22 +16,23 @@ import { AudioManager } from 'react-native-audio-api';
16
16
import { useEffect } from ' react' ;
17
17
18
18
function App() {
19
- // set AVAudioSession example options (iOS only)
20
- AudioManager .setAudioSessionOptions ({
21
- iosCategory: ' playback' ,
22
- iosMode: ' default' ,
23
- iosOptions: [' allowBluetoothHFP' , ' allowAirPlay' ],
24
- });
25
-
26
- // set info for track to be visible while device is locked
27
- AudioManager .setLockScreenInfo ({
28
- title: ' Audio file' ,
29
- artist: ' Software Mansion' ,
30
- album: ' Audio API' ,
31
- duration: 10 ,
32
- });
19
+ // set AVAudioSession example options (iOS only)
20
+ AudioManager .setAudioSessionOptions ({
21
+ iosCategory: ' playback' ,
22
+ iosMode: ' default' ,
23
+ iosOptions: [' allowBluetoothHFP' , ' allowAirPlay' ],
24
+ })
25
+
26
+ // set info for track to be visible while device is locked
27
+ AudioManager .setLockScreenInfo ({
28
+ title: ' Audio file' ,
29
+ artist: ' Software Mansion' ,
30
+ album: ' Audio API' ,
31
+ duration: 10 ,
32
+ });
33
33
34
34
useEffect (() => {
35
+
35
36
// enabling emission of events
36
37
AudioManager .enableRemoteCommand (' remotePlay' , true );
37
38
AudioManager .enableRemoteCommand (' remotePause' , true );
@@ -76,9 +77,9 @@ function App() {
76
77
77
78
### ` setLockScreenInfo `
78
79
79
- | Parameters | Type | Description |
80
- | :-------- : | :------------------------------------------------------ : | :--------------------------------------- -----: |
81
- | ` info ` | [ ` LockScreenInfo ` ] ( /system/audio-manager#lockscreeninfo ) | Information to be displayed on the lock screen |
80
+ | Parameters | Type | Description |
81
+ | :---: | :---: | :-----: |
82
+ | ` info ` | [ ` LockScreenInfo ` ] ( /system/audio-manager#lockscreeninfo ) | Information to be displayed on the lock screen |
82
83
83
84
#### Returns ` undefined `
84
85
@@ -90,17 +91,17 @@ Resets all of the lock screen data.
90
91
91
92
### ` setAudioSessionOptions ` <OnlyiOS />
92
93
93
- | Parameters | Type | Description |
94
- | :-------- : | :------------------------------------------------------ : | :------------------------------- ---- |
95
- | options | [ ` SessionOptions ` ] ( /system/audio-manager#sessionoptions ) | Options to be set for AVAudioSession |
94
+ | Parameters | Type | Description |
95
+ | :---: | :---: | :---- |
96
+ | options | [ ` SessionOptions ` ] ( /system/audio-manager#sessionoptions ) | Options to be set for AVAudioSession |
96
97
97
98
#### Returns ` undefined `
98
99
99
100
### ` setAudioSessionActivity ` <OnlyiOS />
100
101
101
- | Parameters | Type | Description |
102
- | :-------- : | :------- : | :------------------------------------------ ---- |
103
- | enabled | ` boolean ` | It is used to set/unset AVAudioSession activity |
102
+ | Parameters | Type | Description |
103
+ | :---: | :---: | :---- |
104
+ | enabled | ` boolean ` | It is used to set/unset AVAudioSession activity |
104
105
105
106
#### Returns promise of ` boolean ` type, which is resolved to ` true ` if invokation ended with success, ` false ` otherwise.
106
107
@@ -110,28 +111,28 @@ Resets all of the lock screen data.
110
111
111
112
### ` observeAudioInterruptions `
112
113
113
- | Parameters | Type | Description |
114
- | :-------- : | :------- : | :----------------------------------------------------- ---- |
115
- | ` enabled ` | ` boolean ` | It is used to enable/disable observing audio interruptions |
114
+ | Parameters | Type | Description |
115
+ | :---: | :---: | :---- |
116
+ | ` enabled ` | ` boolean ` | It is used to enable/disable observing audio interruptions |
116
117
117
118
#### Returns ` undefined `
118
119
119
120
### ` observeVolumeChanges `
120
121
121
- | Parameters | Type | Description |
122
- | :-------- : | :------- : | :------------------------------------------------ ---- |
123
- | ` enabled ` | ` boolean ` | It is used to enable/disable observing volume changes |
122
+ | Parameters | Type | Description |
123
+ | :---: | :---: | :---- |
124
+ | ` enabled ` | ` boolean ` | It is used to enable/disable observing volume changes |
124
125
125
126
#### Returns ` undefined `
126
127
127
128
### ` enableRemoteCommand `
128
129
129
130
Enables emition of some system events.
130
131
131
- | Parameters | Type | Description |
132
- | :-------- : | :--------------------------------------------------------------------------------------- : | :------------------------------------------- ---- |
133
- | ` name ` | [ ` RemoteCommandEventName ` ] ( /system/audio-manager#systemeventname--remotecommandeventname ) | Name of an event |
134
- | ` enabled ` | ` boolean ` | Indicates the start or the end of event emission |
132
+ | Parameters | Type | Description |
133
+ | :---: | :---: | :---- |
134
+ | ` name ` | [ ` RemoteCommandEventName ` ] ( /system/audio-manager#systemeventname--remotecommandeventname ) | Name of an event |
135
+ | ` enabled ` | ` boolean ` | Indicates the start or the end of event emission |
135
136
136
137
#### Returns ` undefined `
137
138
@@ -142,13 +143,14 @@ with proper parameters.
142
143
143
144
:::
144
145
146
+
145
147
### ` addSystemEventListener `
146
148
147
149
Adds callback to be invoked upon hearing an event.
148
150
149
- | Parameters | Type | Description |
150
- | :-------- : | :------------------------------------------------------------------------------------ : | :---------------------------------------------- ---- |
151
- | ` name ` | [ ` SystemEventName ` ] ( /system/audio-manager#systemeventname--remotecommandeventname ) | Name of an event listener |
151
+ | Parameters | Type | Description |
152
+ | :---: | :---: | :---- |
153
+ | ` name ` | [ ` SystemEventName ` ] ( /system/audio-manager#systemeventname--remotecommandeventname ) | Name of an event listener |
152
154
| ` callback ` | [ ` SystemEventCallback ` ] ( /system/audio-manager#systemeventname--remotecommandeventname ) | Callback that will be invoked upon hearing an event |
153
155
154
156
#### Returns [ ` AudioEventSubscription ` ] ( /system/audio-manager#audioeventsubscription ) if ` enabled ` is set to true, ` undefined ` otherwise
@@ -187,18 +189,17 @@ interface BaseLockScreenInfo {
187
189
type MediaState = ' state_playing' | ' state_paused' ;
188
190
189
191
interface LockScreenInfo extends BaseLockScreenInfo {
190
- title? : string ; // title of the track
191
- artwork? : string ; // uri to the artwork
192
- artist? : string ; // name of the artist
193
- album? : string ; // name of the album
194
- duration? : number ; // duration in seconds
195
- description? : string ; // android only, description of the track
196
- state? : MediaState ;
197
- speed? : number ; // playback rate
198
- elapsedTime? : number ; // elapsed time of an audio in seconds
192
+ title? : string ; // title of the track
193
+ artwork? : string ; // uri to the artwork
194
+ artist? : string ; // name of the artist
195
+ album? : string ; // name of the album
196
+ duration? : number ; // duration in seconds
197
+ description? : string ; // android only, description of the track
198
+ state? : MediaState ;
199
+ speed? : number ; // playback rate
200
+ elapsedTime? : number ; // elapsed time of an audio in seconds
199
201
}
200
-
201
- ````
202
+ ```
202
203
</details >
203
204
204
205
### ` SessionOptions `
@@ -241,10 +242,10 @@ interface SessionOptions {
241
242
iosOptions? : IOSOption [];
242
243
iosCategory? : IOSCategory ;
243
244
}
244
- ` ` ` `
245
-
245
+ ```
246
246
</details >
247
247
248
+
248
249
### ` SystemEventName ` | ` RemoteCommandEventName `
249
250
250
251
<details >
@@ -253,56 +254,55 @@ interface SessionOptions {
253
254
interface EventEmptyType {}
254
255
255
256
interface EventTypeWithValue {
256
- value: number ;
257
+ value: number ;
257
258
}
258
259
259
260
interface OnInterruptionEventType {
260
- type: ' ended' | ' began' ; // if interruption event has started or ended
261
- shouldResume: boolean ; // if we should resume playing after interruption
261
+ type: ' ended' | ' began' ; // if interruption event has started or ended
262
+ shouldResume: boolean ; // if we should resume playing after interruption
262
263
}
263
264
264
265
interface OnRouteChangeEventType {
265
- reason:
266
- | ' Unknown'
267
- | ' Override'
268
- | ' CategoryChange'
269
- | ' WakeFromSleep'
270
- | ' NewDeviceAvailable'
271
- | ' OldDeviceUnavailable'
272
- | ' ConfigurationChange'
273
- | ' NoSuitableRouteForCategory' ;
266
+ reason:
267
+ | ' Unknown'
268
+ | ' Override'
269
+ | ' CategoryChange'
270
+ | ' WakeFromSleep'
271
+ | ' NewDeviceAvailable'
272
+ | ' OldDeviceUnavailable'
273
+ | ' ConfigurationChange'
274
+ | ' NoSuitableRouteForCategory' ;
274
275
}
275
276
276
277
// visit https://developer.apple.com/documentation/mediaplayer/mpremotecommandcenter?language=objc
277
278
// for further info
278
279
interface RemoteCommandEvents {
279
- remotePlay: EventEmptyType ;
280
- remotePause: EventEmptyType ;
281
- remoteStop: EventEmptyType ;
282
- remoteTogglePlayPause: EventEmptyType ; // iOS only
283
- remoteChangePlaybackRate: EventTypeWithValue ;
284
- remoteNextTrack: EventEmptyType ;
285
- remotePreviousTrack: EventEmptyType ;
286
- remoteSkipForward: EventTypeWithValue ;
287
- remoteSkipBackward: EventTypeWithValue ; // iOS only
288
- remoteSeekForward: EventEmptyType ; // iOS only
289
- remoteSeekBackward: EventEmptyType ;
290
- remoteChangePlaybackPosition: EventTypeWithValue ;
280
+ remotePlay: EventEmptyType ;
281
+ remotePause: EventEmptyType ;
282
+ remoteStop: EventEmptyType ;
283
+ remoteTogglePlayPause: EventEmptyType ; // iOS only
284
+ remoteChangePlaybackRate: EventTypeWithValue ;
285
+ remoteNextTrack: EventEmptyType ;
286
+ remotePreviousTrack: EventEmptyType ;
287
+ remoteSkipForward: EventTypeWithValue ;
288
+ remoteSkipBackward: EventTypeWithValue ; // iOS only
289
+ remoteSeekForward: EventEmptyType ; // iOS only
290
+ remoteSeekBackward: EventEmptyType ;
291
+ remoteChangePlaybackPosition: EventTypeWithValue ;
291
292
}
292
293
293
294
type SystemEvents = RemoteCommandEvents & {
294
- volumeChange: EventTypeWithValue ; // triggered when volume level is changed
295
- interruption: OnInterruptionEventType ; // triggered when f.e. some app wants to play music when we are playing
296
- routeChange: OnRouteChangeEventType ; // change of output f.e. from speaker to headphones, events are always emitted!
295
+ volumeChange: EventTypeWithValue ; // triggered when volume level is changed
296
+ interruption: OnInterruptionEventType ; // triggered when f.e. some app wants to play music when we are playing
297
+ routeChange: OnRouteChangeEventType ; // change of output f.e. from speaker to headphones, events are always emitted!
297
298
};
298
299
299
300
type RemoteCommandEventName = keyof RemoteCommandEvents ;
300
301
type SystemEventName = keyof SystemEvents ;
301
302
type SystemEventCallback <Name extends SystemEventName > = (
302
- event : SystemEvents [Name ]
303
+ event : SystemEvents [Name ]
303
304
) => void ;
304
-
305
- ````
305
+ ```
306
306
</details >
307
307
308
308
@@ -334,16 +334,16 @@ class AudioEventSubscription {
334
334
);
335
335
}
336
336
}
337
- ` ` ` `
338
-
337
+ ```
339
338
</details >
340
339
341
340
### ` PermissionStatus `
342
341
343
342
<details >
344
- <summary>Type definitions</summary>
345
- ` ` ` typescript type PermissionStatus = ' Undetermined' | ' Denied' | ' Granted' ;
346
- ```
343
+ <summary >Type definitions</summary >
344
+ ``` typescript
345
+ type PermissionStatus = ' Undetermined' | ' Denied' | ' Granted' ;
346
+ ```
347
347
</details >
348
348
349
349
### ` AudioDevicesInfo `
0 commit comments