react-native-audio-api 0.11.0-alpha.4 → 0.11.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +164 -16
- package/android/src/main/java/com/swmansion/audioapi/core/NativeAudioPlayer.kt +10 -8
- package/android/src/main/java/com/swmansion/audioapi/core/NativeAudioRecorder.kt +10 -8
- package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +5 -2
- package/android/src/main/java/com/swmansion/audioapi/system/CentralizedForegroundService.kt +128 -0
- package/android/src/main/java/com/swmansion/audioapi/system/ForegroundServiceManager.kt +116 -0
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +115 -107
- package/android/src/main/java/com/swmansion/audioapi/system/PermissionRequestListener.kt +2 -1
- package/android/src/main/java/com/swmansion/audioapi/system/notification/BaseNotification.kt +47 -0
- package/android/src/main/java/com/swmansion/audioapi/system/notification/NotificationRegistry.kt +191 -0
- package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotification.kt +669 -0
- package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotificationReceiver.kt +33 -0
- package/android/src/main/java/com/swmansion/audioapi/system/notification/RecordingNotification.kt +303 -0
- package/android/src/main/java/com/swmansion/audioapi/system/notification/RecordingNotificationReceiver.kt +45 -0
- package/android/src/main/java/com/swmansion/audioapi/system/notification/SimpleNotification.kt +119 -0
- package/common/cpp/audioapi/utils/AudioFileProperties.h +17 -17
- package/ios/audioapi/ios/AudioAPIModule.h +2 -2
- package/ios/audioapi/ios/AudioAPIModule.mm +108 -18
- package/ios/audioapi/ios/core/NativeAudioRecorder.m +8 -1
- package/ios/audioapi/ios/system/AudioEngine.mm +2 -2
- package/ios/audioapi/ios/system/AudioSessionManager.mm +12 -9
- package/ios/audioapi/ios/system/NotificationManager.mm +1 -1
- package/ios/audioapi/ios/system/notification/BaseNotification.h +58 -0
- package/ios/audioapi/ios/system/notification/NotificationRegistry.h +70 -0
- package/ios/audioapi/ios/system/notification/NotificationRegistry.mm +172 -0
- package/ios/audioapi/ios/system/notification/PlaybackNotification.h +27 -0
- package/ios/audioapi/ios/system/notification/PlaybackNotification.mm +427 -0
- package/lib/commonjs/api.js +72 -1
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/api.web.js +27 -14
- package/lib/commonjs/api.web.js.map +1 -1
- package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/commonjs/system/AudioManager.js +6 -9
- package/lib/commonjs/system/AudioManager.js.map +1 -1
- package/lib/commonjs/system/index.js +13 -0
- package/lib/commonjs/system/index.js.map +1 -1
- package/lib/commonjs/system/notification/PlaybackNotificationManager.js +135 -0
- package/lib/commonjs/system/notification/PlaybackNotificationManager.js.map +1 -0
- package/lib/commonjs/system/notification/RecordingNotificationManager.js +182 -0
- package/lib/commonjs/system/notification/RecordingNotificationManager.js.map +1 -0
- package/lib/commonjs/system/notification/SimpleNotificationManager.js +122 -0
- package/lib/commonjs/system/notification/SimpleNotificationManager.js.map +1 -0
- package/lib/commonjs/system/notification/index.js +45 -0
- package/lib/commonjs/system/notification/index.js.map +1 -0
- package/lib/commonjs/system/notification/types.js +6 -0
- package/lib/commonjs/system/notification/types.js.map +1 -0
- package/lib/commonjs/types.js +17 -17
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/web-system/index.js +17 -0
- package/lib/commonjs/web-system/index.js.map +1 -0
- package/lib/commonjs/web-system/notification/PlaybackNotificationManager.js +34 -0
- package/lib/commonjs/web-system/notification/PlaybackNotificationManager.js.map +1 -0
- package/lib/commonjs/web-system/notification/RecordingNotificationManager.js +34 -0
- package/lib/commonjs/web-system/notification/RecordingNotificationManager.js.map +1 -0
- package/lib/commonjs/web-system/notification/index.js +21 -0
- package/lib/commonjs/web-system/notification/index.js.map +1 -0
- package/lib/module/api.js +4 -0
- package/lib/module/api.js.map +1 -1
- package/lib/module/api.web.js +3 -1
- package/lib/module/api.web.js.map +1 -1
- package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
- package/lib/module/system/AudioManager.js +6 -9
- package/lib/module/system/AudioManager.js.map +1 -1
- package/lib/module/system/index.js +1 -0
- package/lib/module/system/index.js.map +1 -1
- package/lib/module/system/notification/PlaybackNotificationManager.js +131 -0
- package/lib/module/system/notification/PlaybackNotificationManager.js.map +1 -0
- package/lib/module/system/notification/RecordingNotificationManager.js +178 -0
- package/lib/module/system/notification/RecordingNotificationManager.js.map +1 -0
- package/lib/module/system/notification/SimpleNotificationManager.js +118 -0
- package/lib/module/system/notification/SimpleNotificationManager.js.map +1 -0
- package/lib/module/system/notification/index.js +7 -0
- package/lib/module/system/notification/index.js.map +1 -0
- package/lib/module/system/notification/types.js +4 -0
- package/lib/module/system/notification/types.js.map +1 -0
- package/lib/module/types.js +17 -17
- package/lib/module/types.js.map +1 -1
- package/lib/module/web-system/index.js +4 -0
- package/lib/module/web-system/index.js.map +1 -0
- package/lib/module/web-system/notification/PlaybackNotificationManager.js +30 -0
- package/lib/module/web-system/notification/PlaybackNotificationManager.js.map +1 -0
- package/lib/module/web-system/notification/RecordingNotificationManager.js +30 -0
- package/lib/module/web-system/notification/RecordingNotificationManager.js.map +1 -0
- package/lib/module/web-system/notification/index.js +5 -0
- package/lib/module/web-system/notification/index.js.map +1 -0
- package/lib/typescript/api.d.ts +2 -0
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/api.web.d.ts +3 -1
- package/lib/typescript/api.web.d.ts.map +1 -1
- package/lib/typescript/events/types.d.ts +2 -2
- package/lib/typescript/events/types.d.ts.map +1 -1
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts +16 -5
- package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
- package/lib/typescript/system/AudioManager.d.ts +4 -5
- package/lib/typescript/system/AudioManager.d.ts.map +1 -1
- package/lib/typescript/system/index.d.ts +1 -0
- package/lib/typescript/system/index.d.ts.map +1 -1
- package/lib/typescript/system/notification/PlaybackNotificationManager.d.ts +22 -0
- package/lib/typescript/system/notification/PlaybackNotificationManager.d.ts.map +1 -0
- package/lib/typescript/system/notification/RecordingNotificationManager.d.ts +23 -0
- package/lib/typescript/system/notification/RecordingNotificationManager.d.ts.map +1 -0
- package/lib/typescript/system/notification/SimpleNotificationManager.d.ts +20 -0
- package/lib/typescript/system/notification/SimpleNotificationManager.d.ts.map +1 -0
- package/lib/typescript/system/notification/index.d.ts +5 -0
- package/lib/typescript/system/notification/index.d.ts.map +1 -0
- package/lib/typescript/system/notification/types.d.ts +65 -0
- package/lib/typescript/system/notification/types.d.ts.map +1 -0
- package/lib/typescript/system/types.d.ts +0 -16
- package/lib/typescript/system/types.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +16 -16
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/web-system/index.d.ts +2 -0
- package/lib/typescript/web-system/index.d.ts.map +1 -0
- package/lib/typescript/web-system/notification/PlaybackNotificationManager.d.ts +19 -0
- package/lib/typescript/web-system/notification/PlaybackNotificationManager.d.ts.map +1 -0
- package/lib/typescript/web-system/notification/RecordingNotificationManager.d.ts +19 -0
- package/lib/typescript/web-system/notification/RecordingNotificationManager.d.ts.map +1 -0
- package/lib/typescript/web-system/notification/index.d.ts +3 -0
- package/lib/typescript/web-system/notification/index.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/api.ts +17 -0
- package/src/api.web.ts +7 -2
- package/src/events/types.ts +2 -3
- package/src/specs/NativeAudioAPIModule.ts +23 -7
- package/src/system/AudioManager.ts +10 -23
- package/src/system/index.ts +1 -0
- package/src/system/notification/PlaybackNotificationManager.ts +193 -0
- package/src/system/notification/RecordingNotificationManager.ts +242 -0
- package/src/system/notification/SimpleNotificationManager.ts +170 -0
- package/src/system/notification/index.ts +4 -0
- package/src/system/notification/types.ts +111 -0
- package/src/system/types.ts +0 -18
- package/src/types.ts +17 -17
- package/src/web-system/index.ts +1 -0
- package/src/web-system/notification/PlaybackNotificationManager.ts +60 -0
- package/src/web-system/notification/RecordingNotificationManager.ts +60 -0
- package/src/web-system/notification/index.ts +2 -0
- package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +0 -347
- package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +0 -273
- package/android/src/main/java/com/swmansion/audioapi/system/MediaReceiver.kt +0 -57
- package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +0 -61
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
#import <audioapi/ios/AudioAPIModule.h>
|
|
2
|
+
#import <audioapi/ios/system/notification/PlaybackNotification.h>
|
|
3
|
+
|
|
4
|
+
#define NOW_PLAYING_INFO_KEYS \
|
|
5
|
+
@{ \
|
|
6
|
+
@"title" : MPMediaItemPropertyTitle, \
|
|
7
|
+
@"artist" : MPMediaItemPropertyArtist, \
|
|
8
|
+
@"album" : MPMediaItemPropertyAlbumTitle, \
|
|
9
|
+
@"duration" : MPMediaItemPropertyPlaybackDuration, \
|
|
10
|
+
@"elapsedTime" : MPNowPlayingInfoPropertyElapsedPlaybackTime, \
|
|
11
|
+
@"speed" : MPNowPlayingInfoPropertyPlaybackRate, \
|
|
12
|
+
@"artwork" : MPMediaItemPropertyArtwork \
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@implementation PlaybackNotification {
|
|
16
|
+
BOOL _isInitialized;
|
|
17
|
+
NSMutableDictionary *_currentInfo;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
- (instancetype)initWithAudioAPIModule:(AudioAPIModule *)audioAPIModule
|
|
21
|
+
{
|
|
22
|
+
if (self = [super init]) {
|
|
23
|
+
self.audioAPIModule = audioAPIModule;
|
|
24
|
+
self.playingInfoCenter = [MPNowPlayingInfoCenter defaultCenter];
|
|
25
|
+
_isInitialized = false;
|
|
26
|
+
_isActive = false;
|
|
27
|
+
_currentInfo = [[NSMutableDictionary alloc] init];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return self;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
#pragma mark - BaseNotification Protocol
|
|
34
|
+
|
|
35
|
+
- (BOOL)initializeWithOptions:(NSDictionary *)options
|
|
36
|
+
{
|
|
37
|
+
if (_isInitialized) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Enable remote control events
|
|
42
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
43
|
+
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// Enable default remote commands
|
|
47
|
+
[self enableRemoteCommand:@"play" enabled:true];
|
|
48
|
+
[self enableRemoteCommand:@"pause" enabled:true];
|
|
49
|
+
[self enableRemoteCommand:@"next" enabled:true];
|
|
50
|
+
[self enableRemoteCommand:@"previous" enabled:true];
|
|
51
|
+
[self enableRemoteCommand:@"skipForward" enabled:true];
|
|
52
|
+
[self enableRemoteCommand:@"skipBackward" enabled:true];
|
|
53
|
+
[self enableRemoteCommand:@"seek" enabled:true];
|
|
54
|
+
|
|
55
|
+
_isInitialized = true;
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
- (BOOL)showWithOptions:(NSDictionary *)options
|
|
60
|
+
{
|
|
61
|
+
if (!_isInitialized) {
|
|
62
|
+
if (![self initializeWithOptions:options]) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Update the now playing info
|
|
68
|
+
[self updateNowPlayingInfo:options];
|
|
69
|
+
|
|
70
|
+
_isActive = true;
|
|
71
|
+
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
- (BOOL)updateWithOptions:(NSDictionary *)options
|
|
76
|
+
{
|
|
77
|
+
if (!_isActive) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Handle control enable/disable
|
|
82
|
+
if (options[@"control"] && options[@"enabled"]) {
|
|
83
|
+
NSString *control = options[@"control"];
|
|
84
|
+
BOOL enabled = [options[@"enabled"] boolValue];
|
|
85
|
+
[self enableControl:control enabled:enabled];
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Update the now playing info
|
|
90
|
+
[self updateNowPlayingInfo:options];
|
|
91
|
+
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
- (BOOL)hide
|
|
96
|
+
{
|
|
97
|
+
if (!_isActive) {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Clear now playing info
|
|
102
|
+
self.playingInfoCenter.nowPlayingInfo = nil;
|
|
103
|
+
self.artworkUrl = nil;
|
|
104
|
+
[_currentInfo removeAllObjects];
|
|
105
|
+
|
|
106
|
+
_isActive = false;
|
|
107
|
+
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
- (void)cleanup
|
|
112
|
+
{
|
|
113
|
+
// Hide if active
|
|
114
|
+
if (_isActive) {
|
|
115
|
+
[self hide];
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Disable all remote commands
|
|
119
|
+
MPRemoteCommandCenter *remoteCenter = [MPRemoteCommandCenter sharedCommandCenter];
|
|
120
|
+
[remoteCenter.playCommand removeTarget:self];
|
|
121
|
+
[remoteCenter.pauseCommand removeTarget:self];
|
|
122
|
+
[remoteCenter.stopCommand removeTarget:self];
|
|
123
|
+
[remoteCenter.togglePlayPauseCommand removeTarget:self];
|
|
124
|
+
[remoteCenter.nextTrackCommand removeTarget:self];
|
|
125
|
+
[remoteCenter.previousTrackCommand removeTarget:self];
|
|
126
|
+
[remoteCenter.skipForwardCommand removeTarget:self];
|
|
127
|
+
[remoteCenter.skipBackwardCommand removeTarget:self];
|
|
128
|
+
[remoteCenter.seekForwardCommand removeTarget:self];
|
|
129
|
+
[remoteCenter.seekBackwardCommand removeTarget:self];
|
|
130
|
+
[remoteCenter.changePlaybackPositionCommand removeTarget:self];
|
|
131
|
+
|
|
132
|
+
// Disable remote control events
|
|
133
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
134
|
+
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
_isInitialized = false;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
- (BOOL)isActive
|
|
141
|
+
{
|
|
142
|
+
return _isActive;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
- (NSString *)getNotificationType
|
|
146
|
+
{
|
|
147
|
+
return @"playback";
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
#pragma mark - Private Methods
|
|
151
|
+
|
|
152
|
+
- (void)updateNowPlayingInfo:(NSDictionary *)info
|
|
153
|
+
{
|
|
154
|
+
if (!info) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Get existing now playing info or create new one
|
|
159
|
+
NSMutableDictionary *nowPlayingInfo = [self.playingInfoCenter.nowPlayingInfo mutableCopy];
|
|
160
|
+
if (!nowPlayingInfo) {
|
|
161
|
+
nowPlayingInfo = [[NSMutableDictionary alloc] init];
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Map keys from our API to MPNowPlayingInfoCenter keys
|
|
165
|
+
NSDictionary *keyMap = NOW_PLAYING_INFO_KEYS;
|
|
166
|
+
|
|
167
|
+
// Only update the keys that are provided in this update
|
|
168
|
+
for (NSString *key in info) {
|
|
169
|
+
NSString *mpKey = keyMap[key];
|
|
170
|
+
if (mpKey) {
|
|
171
|
+
// Handle artwork specially - don't set it directly to nowPlayingInfo
|
|
172
|
+
if ([key isEqualToString:@"artwork"]) {
|
|
173
|
+
_currentInfo[key] = info[key];
|
|
174
|
+
} else {
|
|
175
|
+
nowPlayingInfo[mpKey] = info[key];
|
|
176
|
+
_currentInfo[key] = info[key];
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
self.playingInfoCenter.nowPlayingInfo = nowPlayingInfo;
|
|
182
|
+
|
|
183
|
+
// Handle playback state
|
|
184
|
+
NSString *state = _currentInfo[@"state"];
|
|
185
|
+
MPNowPlayingPlaybackState playbackState = MPNowPlayingPlaybackStatePaused;
|
|
186
|
+
|
|
187
|
+
if (state) {
|
|
188
|
+
if ([state isEqualToString:@"playing"]) {
|
|
189
|
+
playbackState = MPNowPlayingPlaybackStatePlaying;
|
|
190
|
+
} else if ([state isEqualToString:@"paused"]) {
|
|
191
|
+
playbackState = MPNowPlayingPlaybackStatePaused;
|
|
192
|
+
} else {
|
|
193
|
+
playbackState = MPNowPlayingPlaybackStatePaused;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
self.playingInfoCenter.playbackState = playbackState;
|
|
198
|
+
|
|
199
|
+
// Handle artwork
|
|
200
|
+
NSString *artworkUrl = [self getArtworkUrl:_currentInfo[@"artwork"]];
|
|
201
|
+
[self updateArtworkIfNeeded:artworkUrl];
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
- (NSString *)getArtworkUrl:(id)artwork
|
|
205
|
+
{
|
|
206
|
+
if (!artwork) {
|
|
207
|
+
return nil;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Handle both string and dictionary formats
|
|
211
|
+
if ([artwork isKindOfClass:[NSString class]]) {
|
|
212
|
+
return artwork;
|
|
213
|
+
} else if ([artwork isKindOfClass:[NSDictionary class]]) {
|
|
214
|
+
return artwork[@"uri"];
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return nil;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
- (void)updateArtworkIfNeeded:(NSString *)artworkUrl
|
|
221
|
+
{
|
|
222
|
+
if (!artworkUrl) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
|
|
227
|
+
if ([artworkUrl isEqualToString:self.artworkUrl] &&
|
|
228
|
+
center.nowPlayingInfo[MPMediaItemPropertyArtwork] != nil) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
self.artworkUrl = artworkUrl;
|
|
233
|
+
|
|
234
|
+
// Load artwork asynchronously
|
|
235
|
+
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
|
|
236
|
+
NSURL *url = nil;
|
|
237
|
+
NSData *imageData = nil;
|
|
238
|
+
UIImage *image = nil;
|
|
239
|
+
|
|
240
|
+
@try {
|
|
241
|
+
if ([artworkUrl hasPrefix:@"http://"] || [artworkUrl hasPrefix:@"https://"]) {
|
|
242
|
+
// Remote URL
|
|
243
|
+
url = [NSURL URLWithString:artworkUrl];
|
|
244
|
+
imageData = [NSData dataWithContentsOfURL:url];
|
|
245
|
+
} else {
|
|
246
|
+
// Local file - try as resource or file path
|
|
247
|
+
NSString *imagePath = [[NSBundle mainBundle] pathForResource:artworkUrl ofType:nil];
|
|
248
|
+
if (imagePath) {
|
|
249
|
+
imageData = [NSData dataWithContentsOfFile:imagePath];
|
|
250
|
+
} else {
|
|
251
|
+
// Try as absolute path
|
|
252
|
+
imageData = [NSData dataWithContentsOfFile:artworkUrl];
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
if (imageData) {
|
|
257
|
+
image = [UIImage imageWithData:imageData];
|
|
258
|
+
}
|
|
259
|
+
} @catch (NSException *exception) {
|
|
260
|
+
// Failed to load artwork
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
if (image) {
|
|
264
|
+
MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc]
|
|
265
|
+
initWithBoundsSize:image.size
|
|
266
|
+
requestHandler:^UIImage *_Nonnull(CGSize size) { return image; }];
|
|
267
|
+
|
|
268
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
269
|
+
NSMutableDictionary *nowPlayingInfo = [center.nowPlayingInfo mutableCopy];
|
|
270
|
+
if (!nowPlayingInfo) {
|
|
271
|
+
nowPlayingInfo = [[NSMutableDictionary alloc] init];
|
|
272
|
+
}
|
|
273
|
+
nowPlayingInfo[MPMediaItemPropertyArtwork] = artwork;
|
|
274
|
+
center.nowPlayingInfo = nowPlayingInfo;
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
- (void)enableControl:(NSString *)control enabled:(BOOL)enabled
|
|
281
|
+
{
|
|
282
|
+
NSSet *validControls = [NSSet setWithObjects:@"play",
|
|
283
|
+
@"pause",
|
|
284
|
+
@"next",
|
|
285
|
+
@"previous",
|
|
286
|
+
@"skipForward",
|
|
287
|
+
@"skipBackward",
|
|
288
|
+
@"seek",
|
|
289
|
+
nil];
|
|
290
|
+
if ([validControls containsObject:control]) {
|
|
291
|
+
[self enableRemoteCommand:control enabled:enabled];
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
- (void)enableRemoteCommand:(NSString *)name enabled:(BOOL)enabled
|
|
296
|
+
{
|
|
297
|
+
MPRemoteCommandCenter *remoteCenter = [MPRemoteCommandCenter sharedCommandCenter];
|
|
298
|
+
|
|
299
|
+
if ([name isEqualToString:@"play"]) {
|
|
300
|
+
[self enableCommand:remoteCenter.playCommand withSelector:@selector(onPlay:) enabled:enabled];
|
|
301
|
+
} else if ([name isEqualToString:@"pause"]) {
|
|
302
|
+
[self enableCommand:remoteCenter.pauseCommand withSelector:@selector(onPause:) enabled:enabled];
|
|
303
|
+
} else if ([name isEqualToString:@"stop"]) {
|
|
304
|
+
[self enableCommand:remoteCenter.stopCommand withSelector:@selector(onStop:) enabled:enabled];
|
|
305
|
+
} else if ([name isEqualToString:@"togglePlayPause"]) {
|
|
306
|
+
[self enableCommand:remoteCenter.togglePlayPauseCommand
|
|
307
|
+
withSelector:@selector(onTogglePlayPause:)
|
|
308
|
+
enabled:enabled];
|
|
309
|
+
} else if ([name isEqualToString:@"next"]) {
|
|
310
|
+
[self enableCommand:remoteCenter.nextTrackCommand
|
|
311
|
+
withSelector:@selector(onNextTrack:)
|
|
312
|
+
enabled:enabled];
|
|
313
|
+
} else if ([name isEqualToString:@"previous"]) {
|
|
314
|
+
[self enableCommand:remoteCenter.previousTrackCommand
|
|
315
|
+
withSelector:@selector(onPreviousTrack:)
|
|
316
|
+
enabled:enabled];
|
|
317
|
+
} else if ([name isEqualToString:@"skipForward"]) {
|
|
318
|
+
remoteCenter.skipForwardCommand.preferredIntervals = @[ @(15) ];
|
|
319
|
+
[self enableCommand:remoteCenter.skipForwardCommand
|
|
320
|
+
withSelector:@selector(onSkipForward:)
|
|
321
|
+
enabled:enabled];
|
|
322
|
+
} else if ([name isEqualToString:@"skipBackward"]) {
|
|
323
|
+
remoteCenter.skipBackwardCommand.preferredIntervals = @[ @(15) ];
|
|
324
|
+
[self enableCommand:remoteCenter.skipBackwardCommand
|
|
325
|
+
withSelector:@selector(onSkipBackward:)
|
|
326
|
+
enabled:enabled];
|
|
327
|
+
} else if ([name isEqualToString:@"seekForward"]) {
|
|
328
|
+
[self enableCommand:remoteCenter.seekForwardCommand
|
|
329
|
+
withSelector:@selector(onSeekForward:)
|
|
330
|
+
enabled:enabled];
|
|
331
|
+
} else if ([name isEqualToString:@"seekBackward"]) {
|
|
332
|
+
[self enableCommand:remoteCenter.seekBackwardCommand
|
|
333
|
+
withSelector:@selector(onSeekBackward:)
|
|
334
|
+
enabled:enabled];
|
|
335
|
+
} else if ([name isEqualToString:@"seek"]) {
|
|
336
|
+
[self enableCommand:remoteCenter.changePlaybackPositionCommand
|
|
337
|
+
withSelector:@selector(onChangePlaybackPosition:)
|
|
338
|
+
enabled:enabled];
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
- (void)enableCommand:(MPRemoteCommand *)command withSelector:(SEL)selector enabled:(BOOL)enabled
|
|
343
|
+
{
|
|
344
|
+
[command removeTarget:self];
|
|
345
|
+
command.enabled = enabled;
|
|
346
|
+
if (enabled) {
|
|
347
|
+
[command addTarget:self action:selector];
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
#pragma mark - Remote Command Handlers
|
|
352
|
+
|
|
353
|
+
- (MPRemoteCommandHandlerStatus)onPlay:(MPRemoteCommandEvent *)event
|
|
354
|
+
{
|
|
355
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationPlay" eventBody:@{}];
|
|
356
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
- (MPRemoteCommandHandlerStatus)onPause:(MPRemoteCommandEvent *)event
|
|
360
|
+
{
|
|
361
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationPause" eventBody:@{}];
|
|
362
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
- (MPRemoteCommandHandlerStatus)onStop:(MPRemoteCommandEvent *)event
|
|
366
|
+
{
|
|
367
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationStop" eventBody:@{}];
|
|
368
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
- (MPRemoteCommandHandlerStatus)onTogglePlayPause:(MPRemoteCommandEvent *)event
|
|
372
|
+
{
|
|
373
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationTogglePlayPause"
|
|
374
|
+
eventBody:@{}];
|
|
375
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
- (MPRemoteCommandHandlerStatus)onNextTrack:(MPRemoteCommandEvent *)event
|
|
379
|
+
{
|
|
380
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationNext" eventBody:@{}];
|
|
381
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
- (MPRemoteCommandHandlerStatus)onPreviousTrack:(MPRemoteCommandEvent *)event
|
|
385
|
+
{
|
|
386
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationPrevious" eventBody:@{}];
|
|
387
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
- (MPRemoteCommandHandlerStatus)onSeekForward:(MPRemoteCommandEvent *)event
|
|
391
|
+
{
|
|
392
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationSeekForward" eventBody:@{}];
|
|
393
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
- (MPRemoteCommandHandlerStatus)onSeekBackward:(MPRemoteCommandEvent *)event
|
|
397
|
+
{
|
|
398
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationSeekBackward"
|
|
399
|
+
eventBody:@{}];
|
|
400
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
- (MPRemoteCommandHandlerStatus)onSkipForward:(MPSkipIntervalCommandEvent *)event
|
|
404
|
+
{
|
|
405
|
+
NSDictionary *body = @{@"value" : @(event.interval)};
|
|
406
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationSkipForward"
|
|
407
|
+
eventBody:body];
|
|
408
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
- (MPRemoteCommandHandlerStatus)onSkipBackward:(MPSkipIntervalCommandEvent *)event
|
|
412
|
+
{
|
|
413
|
+
NSDictionary *body = @{@"value" : @(event.interval)};
|
|
414
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationSkipBackward"
|
|
415
|
+
eventBody:body];
|
|
416
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
- (MPRemoteCommandHandlerStatus)onChangePlaybackPosition:
|
|
420
|
+
(MPChangePlaybackPositionCommandEvent *)event
|
|
421
|
+
{
|
|
422
|
+
NSDictionary *body = @{@"value" : @(event.positionTime)};
|
|
423
|
+
[self.audioAPIModule invokeHandlerWithEventName:@"playbackNotificationSeekTo" eventBody:body];
|
|
424
|
+
return MPRemoteCommandHandlerStatusSuccess;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
@end
|
package/lib/commonjs/api.js
CHANGED
|
@@ -32,7 +32,17 @@ var _exportNames = {
|
|
|
32
32
|
WorkletSourceNode: true,
|
|
33
33
|
useSystemVolume: true,
|
|
34
34
|
AudioManager: true,
|
|
35
|
-
FilePreset: true
|
|
35
|
+
FilePreset: true,
|
|
36
|
+
PlaybackNotificationManager: true,
|
|
37
|
+
RecordingNotificationManager: true,
|
|
38
|
+
NotificationManager: true,
|
|
39
|
+
PlaybackControlName: true,
|
|
40
|
+
PlaybackNotificationEventName: true,
|
|
41
|
+
PlaybackNotificationInfo: true,
|
|
42
|
+
RecordingControlName: true,
|
|
43
|
+
RecordingNotificationEventName: true,
|
|
44
|
+
RecordingNotificationInfo: true,
|
|
45
|
+
SimpleNotificationOptions: true
|
|
36
46
|
};
|
|
37
47
|
Object.defineProperty(exports, "AnalyserNode", {
|
|
38
48
|
enumerable: true,
|
|
@@ -136,6 +146,12 @@ Object.defineProperty(exports, "GainNode", {
|
|
|
136
146
|
return _GainNode.default;
|
|
137
147
|
}
|
|
138
148
|
});
|
|
149
|
+
Object.defineProperty(exports, "NotificationManager", {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
get: function () {
|
|
152
|
+
return _notification.NotificationManager;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
139
155
|
Object.defineProperty(exports, "OfflineAudioContext", {
|
|
140
156
|
enumerable: true,
|
|
141
157
|
get: function () {
|
|
@@ -148,12 +164,66 @@ Object.defineProperty(exports, "OscillatorNode", {
|
|
|
148
164
|
return _OscillatorNode.default;
|
|
149
165
|
}
|
|
150
166
|
});
|
|
167
|
+
Object.defineProperty(exports, "PlaybackControlName", {
|
|
168
|
+
enumerable: true,
|
|
169
|
+
get: function () {
|
|
170
|
+
return _notification.PlaybackControlName;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
Object.defineProperty(exports, "PlaybackNotificationEventName", {
|
|
174
|
+
enumerable: true,
|
|
175
|
+
get: function () {
|
|
176
|
+
return _notification.PlaybackNotificationEventName;
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
Object.defineProperty(exports, "PlaybackNotificationInfo", {
|
|
180
|
+
enumerable: true,
|
|
181
|
+
get: function () {
|
|
182
|
+
return _notification.PlaybackNotificationInfo;
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
Object.defineProperty(exports, "PlaybackNotificationManager", {
|
|
186
|
+
enumerable: true,
|
|
187
|
+
get: function () {
|
|
188
|
+
return _notification.PlaybackNotificationManager;
|
|
189
|
+
}
|
|
190
|
+
});
|
|
151
191
|
Object.defineProperty(exports, "RecorderAdapterNode", {
|
|
152
192
|
enumerable: true,
|
|
153
193
|
get: function () {
|
|
154
194
|
return _RecorderAdapterNode.default;
|
|
155
195
|
}
|
|
156
196
|
});
|
|
197
|
+
Object.defineProperty(exports, "RecordingControlName", {
|
|
198
|
+
enumerable: true,
|
|
199
|
+
get: function () {
|
|
200
|
+
return _notification.RecordingControlName;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
Object.defineProperty(exports, "RecordingNotificationEventName", {
|
|
204
|
+
enumerable: true,
|
|
205
|
+
get: function () {
|
|
206
|
+
return _notification.RecordingNotificationEventName;
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
Object.defineProperty(exports, "RecordingNotificationInfo", {
|
|
210
|
+
enumerable: true,
|
|
211
|
+
get: function () {
|
|
212
|
+
return _notification.RecordingNotificationInfo;
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
Object.defineProperty(exports, "RecordingNotificationManager", {
|
|
216
|
+
enumerable: true,
|
|
217
|
+
get: function () {
|
|
218
|
+
return _notification.RecordingNotificationManager;
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
Object.defineProperty(exports, "SimpleNotificationOptions", {
|
|
222
|
+
enumerable: true,
|
|
223
|
+
get: function () {
|
|
224
|
+
return _notification.SimpleNotificationOptions;
|
|
225
|
+
}
|
|
226
|
+
});
|
|
157
227
|
Object.defineProperty(exports, "StereoPannerNode", {
|
|
158
228
|
enumerable: true,
|
|
159
229
|
get: function () {
|
|
@@ -273,5 +343,6 @@ Object.keys(_types2).forEach(function (key) {
|
|
|
273
343
|
});
|
|
274
344
|
});
|
|
275
345
|
var _filePresets = _interopRequireDefault(require("./utils/filePresets"));
|
|
346
|
+
var _notification = require("./system/notification");
|
|
276
347
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
277
348
|
//# sourceMappingURL=api.js.map
|
package/lib/commonjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioContext","_AudioDecoder","_AudioDestinationNode","_AudioNode","_AudioParam","_AudioRecorder","_AudioScheduledSourceNode","_AudioStretcher","_BaseAudioContext","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_GainNode","_OfflineAudioContext","_OscillatorNode","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","_useSystemVolume","_system","_errors","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_filePresets","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["require","_AnalyserNode","_interopRequireDefault","_AudioBuffer","_AudioBufferQueueSourceNode","_AudioBufferSourceNode","_AudioContext","_AudioDecoder","_AudioDestinationNode","_AudioNode","_AudioParam","_AudioRecorder","_AudioScheduledSourceNode","_AudioStretcher","_BaseAudioContext","_BiquadFilterNode","_ConstantSourceNode","_ConvolverNode","_GainNode","_OfflineAudioContext","_OscillatorNode","_RecorderAdapterNode","_StereoPannerNode","_StreamerNode","_WorkletNode","_WorkletProcessingNode","_WorkletSourceNode","_useSystemVolume","_system","_errors","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_filePresets","_notification","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/api.web.js
CHANGED
|
@@ -31,9 +31,9 @@ var _exportNames = {
|
|
|
31
31
|
IOSMode: true,
|
|
32
32
|
IOSOption: true,
|
|
33
33
|
SessionOptions: true,
|
|
34
|
-
MediaState: true,
|
|
35
|
-
LockScreenInfo: true,
|
|
36
34
|
PermissionStatus: true,
|
|
35
|
+
PlaybackNotificationManager: true,
|
|
36
|
+
RecordingNotificationManager: true,
|
|
37
37
|
IndexSizeError: true,
|
|
38
38
|
InvalidAccessError: true,
|
|
39
39
|
InvalidStateError: true,
|
|
@@ -178,18 +178,6 @@ Object.defineProperty(exports, "InvalidStateError", {
|
|
|
178
178
|
return _errors.InvalidStateError;
|
|
179
179
|
}
|
|
180
180
|
});
|
|
181
|
-
Object.defineProperty(exports, "LockScreenInfo", {
|
|
182
|
-
enumerable: true,
|
|
183
|
-
get: function () {
|
|
184
|
-
return _types2.LockScreenInfo;
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
Object.defineProperty(exports, "MediaState", {
|
|
188
|
-
enumerable: true,
|
|
189
|
-
get: function () {
|
|
190
|
-
return _types2.MediaState;
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
181
|
Object.defineProperty(exports, "NotSupportedError", {
|
|
194
182
|
enumerable: true,
|
|
195
183
|
get: function () {
|
|
@@ -226,12 +214,24 @@ Object.defineProperty(exports, "PermissionStatus", {
|
|
|
226
214
|
return _types2.PermissionStatus;
|
|
227
215
|
}
|
|
228
216
|
});
|
|
217
|
+
Object.defineProperty(exports, "PlaybackNotificationManager", {
|
|
218
|
+
enumerable: true,
|
|
219
|
+
get: function () {
|
|
220
|
+
return _webSystem.PlaybackNotificationManager;
|
|
221
|
+
}
|
|
222
|
+
});
|
|
229
223
|
Object.defineProperty(exports, "RangeError", {
|
|
230
224
|
enumerable: true,
|
|
231
225
|
get: function () {
|
|
232
226
|
return _errors.RangeError;
|
|
233
227
|
}
|
|
234
228
|
});
|
|
229
|
+
Object.defineProperty(exports, "RecordingNotificationManager", {
|
|
230
|
+
enumerable: true,
|
|
231
|
+
get: function () {
|
|
232
|
+
return _webSystem.RecordingNotificationManager;
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
235
|
Object.defineProperty(exports, "SessionOptions", {
|
|
236
236
|
enumerable: true,
|
|
237
237
|
get: function () {
|
|
@@ -280,6 +280,19 @@ Object.keys(_custom).forEach(function (key) {
|
|
|
280
280
|
});
|
|
281
281
|
var _types = require("./types");
|
|
282
282
|
var _types2 = require("./system/types");
|
|
283
|
+
var _webSystem = require("./web-system");
|
|
284
|
+
var _types3 = require("./system/notification/types");
|
|
285
|
+
Object.keys(_types3).forEach(function (key) {
|
|
286
|
+
if (key === "default" || key === "__esModule") return;
|
|
287
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
288
|
+
if (key in exports && exports[key] === _types3[key]) return;
|
|
289
|
+
Object.defineProperty(exports, key, {
|
|
290
|
+
enumerable: true,
|
|
291
|
+
get: function () {
|
|
292
|
+
return _types3[key];
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
});
|
|
283
296
|
var _errors = require("./errors");
|
|
284
297
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
285
298
|
//# sourceMappingURL=api.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AudioBuffer","_interopRequireDefault","require","_AudioBufferSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_GainNode","_OscillatorNode","_StereoPannerNode","_ConstantSourceNode","_ConvolverNode","_custom","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_errors","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.web.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,oBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,qBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,aAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,WAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,yBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,iBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,iBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,SAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,eAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,iBAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,mBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,cAAA,GAAAhB,sBAAA,CAAAC,OAAA;AAEA,IAAAgB,OAAA,GAAAhB,OAAA;AAAAiB,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAS,MAAA,GAAA7B,OAAA;AAUA,IAAA8B,OAAA,GAAA9B,OAAA;
|
|
1
|
+
{"version":3,"names":["_AudioBuffer","_interopRequireDefault","require","_AudioBufferSourceNode","_AudioContext","_OfflineAudioContext","_AudioDestinationNode","_AudioNode","_AnalyserNode","_AudioParam","_AudioScheduledSourceNode","_BaseAudioContext","_BiquadFilterNode","_GainNode","_OscillatorNode","_StereoPannerNode","_ConstantSourceNode","_ConvolverNode","_custom","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_types2","_webSystem","_types3","_errors","e","__esModule","default"],"sourceRoot":"../../src","sources":["api.web.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,oBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,qBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,aAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,WAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,yBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,iBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,iBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,SAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,eAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,iBAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,mBAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,cAAA,GAAAhB,sBAAA,CAAAC,OAAA;AAEA,IAAAgB,OAAA,GAAAhB,OAAA;AAAAiB,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAS,MAAA,GAAA7B,OAAA;AAUA,IAAA8B,OAAA,GAAA9B,OAAA;AAQA,IAAA+B,UAAA,GAAA/B,OAAA;AAKA,IAAAgC,OAAA,GAAAhC,OAAA;AAAAiB,MAAA,CAAAC,IAAA,CAAAc,OAAA,EAAAb,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAY,OAAA,CAAAZ,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,OAAA,CAAAZ,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAa,OAAA,GAAAjC,OAAA;AAMkB,SAAAD,uBAAAmC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AAEb,IAAAC,YAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","NativeAudioAPIModule","_reactNative","require","TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeAudioAPIModule.ts"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,oBAAA;AAEb,IAAAC,YAAA,GAAAC,OAAA;AAqDA,MAAMF,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGG,gCAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
|
|
@@ -22,12 +22,6 @@ class AudioManager {
|
|
|
22
22
|
disableSessionManagement() {
|
|
23
23
|
_specs.NativeAudioAPIModule.disableSessionManagement();
|
|
24
24
|
}
|
|
25
|
-
setLockScreenInfo(info) {
|
|
26
|
-
_specs.NativeAudioAPIModule.setLockScreenInfo(info);
|
|
27
|
-
}
|
|
28
|
-
resetLockScreenInfo() {
|
|
29
|
-
_specs.NativeAudioAPIModule.resetLockScreenInfo();
|
|
30
|
-
}
|
|
31
25
|
observeAudioInterruptions(enabled) {
|
|
32
26
|
_specs.NativeAudioAPIModule.observeAudioInterruptions(enabled);
|
|
33
27
|
}
|
|
@@ -51,9 +45,6 @@ class AudioManager {
|
|
|
51
45
|
observeVolumeChanges(enabled) {
|
|
52
46
|
_specs.NativeAudioAPIModule.observeVolumeChanges(enabled);
|
|
53
47
|
}
|
|
54
|
-
enableRemoteCommand(name, enabled) {
|
|
55
|
-
_specs.NativeAudioAPIModule.enableRemoteCommand(name, enabled);
|
|
56
|
-
}
|
|
57
48
|
addSystemEventListener(name, callback) {
|
|
58
49
|
return this.audioEventEmitter.addAudioEventListener(name, callback);
|
|
59
50
|
}
|
|
@@ -63,6 +54,12 @@ class AudioManager {
|
|
|
63
54
|
async checkRecordingPermissions() {
|
|
64
55
|
return _specs.NativeAudioAPIModule.checkRecordingPermissions();
|
|
65
56
|
}
|
|
57
|
+
async requestNotificationPermissions() {
|
|
58
|
+
return _specs.NativeAudioAPIModule.requestNotificationPermissions();
|
|
59
|
+
}
|
|
60
|
+
async checkNotificationPermissions() {
|
|
61
|
+
return _specs.NativeAudioAPIModule.checkNotificationPermissions();
|
|
62
|
+
}
|
|
66
63
|
async getDevicesInfo() {
|
|
67
64
|
return _specs.NativeAudioAPIModule.getDevicesInfo();
|
|
68
65
|
}
|