@voltkit-rtc/react-native 0.1.1 → 0.1.2
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 +20 -0
- package/README.md +3 -3
- package/lib/commonjs/local-media.js +52 -10
- package/lib/commonjs/local-media.js.map +1 -1
- package/lib/commonjs/native.js +1 -1
- package/lib/commonjs/platform/common.js +1 -1
- package/lib/module/local-media.js +52 -10
- package/lib/module/local-media.js.map +1 -1
- package/lib/module/native.js +1 -1
- package/lib/module/platform/common.js +1 -1
- package/lib/typescript/commonjs/native.d.ts +1 -1
- package/lib/typescript/commonjs/platform/common.d.ts +1 -1
- package/lib/typescript/module/native.d.ts +1 -1
- package/lib/typescript/module/platform/common.d.ts +1 -1
- package/package.json +1 -1
- package/src/local-media.ts +49 -11
- package/src/native.ts +1 -1
- package/src/platform/common.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.2
|
|
4
|
+
|
|
5
|
+
From the SDK red team (`src/__tests__/redteam.test.tsx` RN-1, RN-2), with the lead's decisions:
|
|
6
|
+
|
|
7
|
+
- **Stop wins over a Go live still under way** (RN-1, RN-2, privacy). `unpublish()` tapped while the Android
|
|
8
|
+
permission dialog was up, or while the camera was opening, let the camera and microphone go live after the user
|
|
9
|
+
stopped. `publish()` now watches for the stop: after the dialog nothing opens, a camera that opened is released,
|
|
10
|
+
nothing is published, and it rejects with `unpublished`.
|
|
11
|
+
- **Permissions are hints** (client 0.9.14): where `permissions` says audio or video is off, `publish()` asks the
|
|
12
|
+
controller before refusing; with client 0.9.13 the hint stands.
|
|
13
|
+
- The test fixture's native version is 0.1.2 (no stale-native warning in Jest).
|
|
14
|
+
|
|
15
|
+
Prepared 2026-10-28, not published. README only: the Music add-on. Music is an add-on on standard and HD voice (₹10 per
|
|
16
|
+
1,000 participant-minutes while music plays, enabled in the project's Settings → Media and quality) and included with
|
|
17
|
+
video; a listener who receives a web host's `music` track is billed it on a voice tier too. This SDK still does not
|
|
18
|
+
publish music (`publishMusic()` rejects with `music-unavailable`). No behaviour changed (`SDK_VERSION` follows the
|
|
19
|
+
package version); the peers are unchanged
|
|
20
|
+
(`@voltkit-rtc/client >=0.9.13 <0.10.0` takes 0.9.14, `@voltkit-rtc/react ^0.1.1` takes 0.1.2). Build the app again
|
|
21
|
+
after upgrading all the same: its version check reads this package's version.
|
|
22
|
+
|
|
3
23
|
## 0.1.1
|
|
4
24
|
|
|
5
25
|
2026-10-27. Two fixes from the testers' report on 0.1.0 (RN010-1, RN010-2). Peer dependency `@voltkit-rtc/client`
|
package/README.md
CHANGED
|
@@ -580,7 +580,7 @@ browser SDK's: https://voltkit.in/docs/client-sdk.
|
|
|
580
580
|
|
|
581
581
|
| Call | |
|
|
582
582
|
| --- | --- |
|
|
583
|
-
| `publish(options?)` | ask for the permissions, then open the camera and microphone and publish them (hosts and cohosts) |
|
|
583
|
+
| `publish(options?)` | ask for the permissions, then open the camera and microphone and publish them (hosts and cohosts). `unpublish()` while the permission dialog is up or the camera is opening wins: no device opens after it, what opened is released, nothing goes live, and `publish` rejects with `unpublished` (0.1.2). Where `permissions` says no, the controller is asked first (client 0.9.14): the hint can be stale |
|
|
584
584
|
| `unpublish()` | stop publishing everything, screen included, and release the devices |
|
|
585
585
|
| `setMicEnabled(on)`, `setCamEnabled(on)` | switch one off or on; viewers are told |
|
|
586
586
|
| `setAudioQuality(quality)` | `'std'` or `'hd'` while live; resolves to the quality in use |
|
|
@@ -1263,7 +1263,7 @@ on for a publish that cannot happen:
|
|
|
1263
1263
|
| `not-connected` | the session is not connected, or there is no client yet |
|
|
1264
1264
|
| `forbidden` | your role is not `host` or `cohost` |
|
|
1265
1265
|
| `source-already-published` | a camera and microphone are already published, or a publish is under way: `unpublish()` first |
|
|
1266
|
-
| `media-disabled` | the project switched that kind off. Check `permissions.audio` and `permissions.video`, or pass `audio: false` or `video: false` |
|
|
1266
|
+
| `media-disabled` | the project switched that kind off. Check `permissions.audio` and `permissions.video`, or pass `audio: false` or `video: false`. A web host's `publishMusic` gets it too where the project has neither the Music add-on nor video enabled; this SDK does not publish music |
|
|
1267
1267
|
|
|
1268
1268
|
A camera or microphone that another app holds, or that fails to open, rejects
|
|
1269
1269
|
with `media-unavailable`, with `data.reason` set to the capture error's name (or
|
|
@@ -1309,7 +1309,7 @@ export function mediaProblem(err: unknown): string | null {
|
|
|
1309
1309
|
| `camera-failed` | the camera could not switch; the old one stays on air | try again |
|
|
1310
1310
|
| `bad-params` | an id no camera, microphone or output has, or an output chosen in the `media` audio mode | use an id from `useDevices` or `useAudioOutput` |
|
|
1311
1311
|
| `screen-share-service-required`, `screen-share-denied`, `screen-share-unsupported`, `screen-share-active`, `screen-share-failed` | screen sharing is not set up in the build, the user cancelled, iOS, a share is already starting, or the capture could not start | see [Screen sharing](#screen-sharing) |
|
|
1312
|
-
| `music-unavailable` | in-app music needs a browser | leave
|
|
1312
|
+
| `music-unavailable` | in-app music needs a browser. Receiving a host's `music` track works, and is billed as the Music add-on: ₹10 per 1,000 participant-minutes while music plays, on standard and HD voice, included with video | leave publishing music out of the app |
|
|
1313
1313
|
|
|
1314
1314
|
### Reconnection
|
|
1315
1315
|
|
|
@@ -240,12 +240,31 @@ async function publishDevices(client, options) {
|
|
|
240
240
|
if (publishing.has(client) || (0, _common.localStream)(client)?.getTracks().some(track => track.readyState === 'live')) {
|
|
241
241
|
throw new _client.RpcError('source-already-published', 'already publishing: unpublish() first');
|
|
242
242
|
}
|
|
243
|
-
const permissions = client.mediaPermissions;
|
|
244
|
-
if (audio !== false && !permissions.audio) throw new _client.RpcError('media-disabled', 'audio is switched off for this project');
|
|
245
|
-
if (video !== false && !permissions.video) throw new _client.RpcError('media-disabled', 'video is switched off for this project');
|
|
246
|
-
if (!(0, _globals.registerVoltkitGlobals)()) throw (0, _errors.webrtcMissing)();
|
|
247
243
|
publishing.add(client);
|
|
244
|
+
// Stop wins over a start still under way (0.1.2): unpublish() -- the user's Stop -- while the permission dialog is up
|
|
245
|
+
// or the camera is opening says so with localStreamChanged(null). No device opens after it, what opened is released,
|
|
246
|
+
// nothing is published, and this start rejects with `unpublished`.
|
|
247
|
+
let stopped = false;
|
|
248
|
+
const unwatch = client.on('localStreamChanged', local => {
|
|
249
|
+
if (local === null) stopped = true;
|
|
250
|
+
});
|
|
251
|
+
const stoppedError = () => new _client.RpcError('unpublished', 'unpublish() ran while the camera and microphone were opening');
|
|
248
252
|
try {
|
|
253
|
+
let permissions = client.mediaPermissions;
|
|
254
|
+
if (audio !== false && !permissions.audio || video !== false && !permissions.video) {
|
|
255
|
+
// A hint from the join (client 0.9.14): the controller is asked before refusing. Null: it cannot say, and the
|
|
256
|
+
// client's publish lets it decide.
|
|
257
|
+
const fresh = await refreshPermissions(client, permissions);
|
|
258
|
+
permissions = fresh ?? {
|
|
259
|
+
...permissions,
|
|
260
|
+
audio: true,
|
|
261
|
+
video: true
|
|
262
|
+
};
|
|
263
|
+
if (stopped) throw stoppedError();
|
|
264
|
+
}
|
|
265
|
+
if (audio !== false && !permissions.audio) throw new _client.RpcError('media-disabled', 'audio is switched off for this project');
|
|
266
|
+
if (video !== false && !permissions.video) throw new _client.RpcError('media-disabled', 'video is switched off for this project');
|
|
267
|
+
if (!(0, _globals.registerVoltkitGlobals)()) throw (0, _errors.webrtcMissing)();
|
|
249
268
|
const kinds = [];
|
|
250
269
|
if (video !== false) kinds.push('camera');
|
|
251
270
|
if (audio !== false) kinds.push('microphone');
|
|
@@ -255,27 +274,50 @@ async function publishDevices(client, options) {
|
|
|
255
274
|
if (status !== 'granted') throw (0, _errors.permissionRefused)(kind, status);
|
|
256
275
|
}
|
|
257
276
|
// The dialog stays up as long as the user thinks: the call may be over by now (the screen unmounted, a kick, the
|
|
258
|
-
// room closed). Nothing opens a device
|
|
277
|
+
// room closed), or the user tapped Stop. Nothing opens a device then.
|
|
278
|
+
if (stopped) throw stoppedError();
|
|
259
279
|
if (client.connectionState !== 'connected') throw new _client.RpcError('not-connected', 'the session ended while the permissions were being asked for');
|
|
260
280
|
const constraints = captureConstraints(options, permissions);
|
|
261
281
|
const platform = (0, _index.reactNativePlatform)();
|
|
262
282
|
const stream = await platform.getUserMedia(constraints);
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
await client.publish(stream, constraints, publishOptions);
|
|
266
|
-
} catch (error) {
|
|
267
|
-
// Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
|
|
283
|
+
// Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
|
|
284
|
+
const release = () => {
|
|
268
285
|
const book = (0, _streams.streamBook)();
|
|
269
286
|
const tracks = stream.getTracks();
|
|
270
287
|
book.release(stream);
|
|
271
288
|
for (const track of tracks) book.stop(track);
|
|
289
|
+
};
|
|
290
|
+
if (stopped) {
|
|
291
|
+
release();
|
|
292
|
+
throw stoppedError();
|
|
293
|
+
}
|
|
294
|
+
try {
|
|
295
|
+
// With the constraints, a reconnect that finds the devices gone opens them again.
|
|
296
|
+
await client.publish(stream, constraints, publishOptions);
|
|
297
|
+
} catch (error) {
|
|
298
|
+
release();
|
|
272
299
|
throw error;
|
|
273
300
|
}
|
|
274
301
|
} finally {
|
|
302
|
+
if (typeof unwatch === 'function') unwatch();
|
|
275
303
|
publishing.delete(client);
|
|
276
304
|
}
|
|
277
305
|
}
|
|
278
306
|
|
|
307
|
+
/**
|
|
308
|
+
* The project's permissions as the controller says now (client 0.9.14), or null when it cannot say. A client older
|
|
309
|
+
* than 0.9.14 cannot ask: its hint stands. A failed question leaves the hint standing too.
|
|
310
|
+
*/
|
|
311
|
+
async function refreshPermissions(client, hint) {
|
|
312
|
+
const refresh = client.refreshMediaPermissions;
|
|
313
|
+
if (typeof refresh !== 'function') return hint;
|
|
314
|
+
try {
|
|
315
|
+
return await refresh.call(client);
|
|
316
|
+
} catch {
|
|
317
|
+
return hint;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
279
321
|
/** Each quality's 16:9 frame, as the SDK sends it. */
|
|
280
322
|
const FRAMES = {
|
|
281
323
|
'1080p': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_client","_react2","_errors","_permissions","_globals","_index","_streams","_devices","_common","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","DEFAULT_MEDIA_PERMISSIONS","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","localStream","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","useVoltkitClient","source","useMemo","useSyncExternalStore","actions","localActions","call","task","RpcError","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","registerVoltkitGlobals","webrtcMissing","kinds","statuses","requestMediaPermissions","kind","status","permissionRefused","constraints","captureConstraints","platform","reactNativePlatform","getUserMedia","error","book","streamBook","tracks","release","stop","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","allowedQuality","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","listCameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_client","_react2","_errors","_permissions","_globals","_index","_streams","_devices","_common","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","DEFAULT_MEDIA_PERMISSIONS","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","localStream","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","useVoltkitClient","source","useMemo","useSyncExternalStore","actions","localActions","call","task","RpcError","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","stopped","unwatch","local","stoppedError","fresh","refreshPermissions","registerVoltkitGlobals","webrtcMissing","kinds","statuses","requestMediaPermissions","kind","status","permissionRefused","constraints","captureConstraints","platform","reactNativePlatform","getUserMedia","release","book","streamBook","tracks","stop","error","hint","refresh","refreshMediaPermissions","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","allowedQuality","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","listCameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/native.js
CHANGED
|
@@ -21,7 +21,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
/** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
|
|
24
|
-
const SDK_VERSION = exports.SDK_VERSION = '0.1.
|
|
24
|
+
const SDK_VERSION = exports.SDK_VERSION = '0.1.2';
|
|
25
25
|
|
|
26
26
|
/** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
|
|
27
27
|
function nativeModule() {
|
|
@@ -60,7 +60,7 @@ function localStream(client) {
|
|
|
60
60
|
return client.local ?? null;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.
|
|
63
|
+
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
|
|
64
64
|
function describePlatform() {
|
|
65
65
|
return `ReactNative ${_reactNative.Platform.OS} ${String(_reactNative.Platform.Version)}; react-native-webrtc ${(0, _globals.webrtcVersion)() ?? 'unknown'}; @voltkit-rtc/react-native ${_native.SDK_VERSION}`;
|
|
66
66
|
}
|
|
@@ -235,12 +235,31 @@ async function publishDevices(client, options) {
|
|
|
235
235
|
if (publishing.has(client) || localStream(client)?.getTracks().some(track => track.readyState === 'live')) {
|
|
236
236
|
throw new RpcError('source-already-published', 'already publishing: unpublish() first');
|
|
237
237
|
}
|
|
238
|
-
const permissions = client.mediaPermissions;
|
|
239
|
-
if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
|
|
240
|
-
if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
|
|
241
|
-
if (!registerVoltkitGlobals()) throw webrtcMissing();
|
|
242
238
|
publishing.add(client);
|
|
239
|
+
// Stop wins over a start still under way (0.1.2): unpublish() -- the user's Stop -- while the permission dialog is up
|
|
240
|
+
// or the camera is opening says so with localStreamChanged(null). No device opens after it, what opened is released,
|
|
241
|
+
// nothing is published, and this start rejects with `unpublished`.
|
|
242
|
+
let stopped = false;
|
|
243
|
+
const unwatch = client.on('localStreamChanged', local => {
|
|
244
|
+
if (local === null) stopped = true;
|
|
245
|
+
});
|
|
246
|
+
const stoppedError = () => new RpcError('unpublished', 'unpublish() ran while the camera and microphone were opening');
|
|
243
247
|
try {
|
|
248
|
+
let permissions = client.mediaPermissions;
|
|
249
|
+
if (audio !== false && !permissions.audio || video !== false && !permissions.video) {
|
|
250
|
+
// A hint from the join (client 0.9.14): the controller is asked before refusing. Null: it cannot say, and the
|
|
251
|
+
// client's publish lets it decide.
|
|
252
|
+
const fresh = await refreshPermissions(client, permissions);
|
|
253
|
+
permissions = fresh ?? {
|
|
254
|
+
...permissions,
|
|
255
|
+
audio: true,
|
|
256
|
+
video: true
|
|
257
|
+
};
|
|
258
|
+
if (stopped) throw stoppedError();
|
|
259
|
+
}
|
|
260
|
+
if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
|
|
261
|
+
if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
|
|
262
|
+
if (!registerVoltkitGlobals()) throw webrtcMissing();
|
|
244
263
|
const kinds = [];
|
|
245
264
|
if (video !== false) kinds.push('camera');
|
|
246
265
|
if (audio !== false) kinds.push('microphone');
|
|
@@ -250,27 +269,50 @@ async function publishDevices(client, options) {
|
|
|
250
269
|
if (status !== 'granted') throw permissionRefused(kind, status);
|
|
251
270
|
}
|
|
252
271
|
// The dialog stays up as long as the user thinks: the call may be over by now (the screen unmounted, a kick, the
|
|
253
|
-
// room closed). Nothing opens a device
|
|
272
|
+
// room closed), or the user tapped Stop. Nothing opens a device then.
|
|
273
|
+
if (stopped) throw stoppedError();
|
|
254
274
|
if (client.connectionState !== 'connected') throw new RpcError('not-connected', 'the session ended while the permissions were being asked for');
|
|
255
275
|
const constraints = captureConstraints(options, permissions);
|
|
256
276
|
const platform = reactNativePlatform();
|
|
257
277
|
const stream = await platform.getUserMedia(constraints);
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
await client.publish(stream, constraints, publishOptions);
|
|
261
|
-
} catch (error) {
|
|
262
|
-
// Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
|
|
278
|
+
// Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
|
|
279
|
+
const release = () => {
|
|
263
280
|
const book = streamBook();
|
|
264
281
|
const tracks = stream.getTracks();
|
|
265
282
|
book.release(stream);
|
|
266
283
|
for (const track of tracks) book.stop(track);
|
|
284
|
+
};
|
|
285
|
+
if (stopped) {
|
|
286
|
+
release();
|
|
287
|
+
throw stoppedError();
|
|
288
|
+
}
|
|
289
|
+
try {
|
|
290
|
+
// With the constraints, a reconnect that finds the devices gone opens them again.
|
|
291
|
+
await client.publish(stream, constraints, publishOptions);
|
|
292
|
+
} catch (error) {
|
|
293
|
+
release();
|
|
267
294
|
throw error;
|
|
268
295
|
}
|
|
269
296
|
} finally {
|
|
297
|
+
if (typeof unwatch === 'function') unwatch();
|
|
270
298
|
publishing.delete(client);
|
|
271
299
|
}
|
|
272
300
|
}
|
|
273
301
|
|
|
302
|
+
/**
|
|
303
|
+
* The project's permissions as the controller says now (client 0.9.14), or null when it cannot say. A client older
|
|
304
|
+
* than 0.9.14 cannot ask: its hint stands. A failed question leaves the hint standing too.
|
|
305
|
+
*/
|
|
306
|
+
async function refreshPermissions(client, hint) {
|
|
307
|
+
const refresh = client.refreshMediaPermissions;
|
|
308
|
+
if (typeof refresh !== 'function') return hint;
|
|
309
|
+
try {
|
|
310
|
+
return await refresh.call(client);
|
|
311
|
+
} catch {
|
|
312
|
+
return hint;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
274
316
|
/** Each quality's 16:9 frame, as the SDK sends it. */
|
|
275
317
|
const FRAMES = {
|
|
276
318
|
'1080p': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useSyncExternalStore","allowedQuality","DEFAULT_MEDIA_PERMISSIONS","RpcError","useVoltkitClient","permissionRefused","webrtcMissing","requestMediaPermissions","registerVoltkitGlobals","reactNativePlatform","streamBook","listCameras","localStream","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","source","actions","localActions","call","task","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","kinds","statuses","kind","status","constraints","captureConstraints","platform","getUserMedia","error","book","tracks","release","stop","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,EAAEC,oBAAoB,QAAQ,OAAO;AACrD,SACEC,cAAc,EACdC,yBAAyB,EACzBC,QAAQ,QAOH,qBAAqB;AAC5B,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,iBAAiB,EAAEC,aAAa,QAAkC,aAAU;AACrF,SAASC,uBAAuB,QAAQ,kBAAe;AACvD,SAASC,sBAAsB,QAAQ,cAAW;AAClD,SAASC,mBAAmB,QAAQ,qBAAY;AAChD,SAASC,UAAU,QAAyC,uBAAoB;AAChF,SAASC,WAAW,QAAQ,uBAAoB;AAChD,SAASC,WAAW,QAA4E,sBAAmB;;AAEnH;;AAiEA;;AAEA;AACA;AACA;AACA;AACA,MAAMC,YAAY,CAAC;EACjBC,MAAM,GAA2B,IAAI;EACpBC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;EAC1CC,OAAO,GAAG,CAAC;EACXC,aAAa,GAAwB,IAAI;EAEjDC,WAAWA,CAAkBC,MAAoB,EAAE;IAAA,KAAtBA,MAAoB,GAApBA,MAAoB;EAAG;EAEpDC,IAAIA,CAAA,EAAe;IACjB,IAAI,IAAI,CAACJ,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,CAACC,aAAa,GAAG,IAAI,CAACI,MAAM,CAAC,CAAC;IAC5D,IAAIC,IAAI,GAAG,IAAI;IACf,OAAO,MAAM;MACX,IAAI,CAACA,IAAI,EAAE;MACXA,IAAI,GAAG,KAAK;MACZ,IAAI,EAAE,IAAI,CAACN,OAAO,KAAK,CAAC,EAAE;QACxB,IAAI,CAACC,aAAa,GAAG,CAAC;QACtB,IAAI,CAACA,aAAa,GAAG,IAAI;MAC3B;IACF,CAAC;EACH;EAEAM,SAASA,CAACC,QAAoB,EAAc;IAC1C,IAAI,CAACV,SAAS,CAACW,GAAG,CAACD,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAACV,SAAS,CAACY,MAAM,CAACF,QAAQ,CAAC;IACjC,CAAC;EACH;EAEAG,OAAOA,CAAA,EAAS;IACd,KAAK,MAAMH,QAAQ,IAAI,CAAC,GAAG,IAAI,CAACV,SAAS,CAAC,EAAEU,QAAQ,CAAC,CAAC;EACxD;EAEQH,MAAMA,CAAA,EAAe;IAC3B,MAAMF,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAMS,IAAI,GAAG,CACXT,MAAM,CAACU,EAAE,CAAC,oBAAoB,EAAE,CAAC;MAAEC;IAAO,CAAC,KAAK;MAC9C;MACA,IAAI,CAACjB,MAAM,GAAGiB,MAAoC;MAClD,IAAI,CAACH,OAAO,CAAC,CAAC;IAChB,CAAC,CAAC,EACFR,MAAM,CAACU,EAAE,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,EACrDZ,MAAM,CAACU,EAAE,CAAC,wBAAwB,EAAE,CAAC;MAAEG;IAAM,CAAC,KAAK;MACjD,IAAIA,KAAK,KAAK,QAAQ,EAAE,IAAI,CAACD,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CACH;IACD,OAAO,MAAM;MACX,KAAK,MAAME,GAAG,IAAIL,IAAI,EAAEK,GAAG,CAAC,CAAC;IAC/B,CAAC;EACH;EAEQF,SAASA,CAAA,EAAS;IACxB,IAAI,CAAC,IAAI,CAAClB,MAAM,EAAE;IAClB,IAAI,CAACA,MAAM,GAAG,IAAI;IAClB,IAAI,CAACc,OAAO,CAAC,CAAC;EAChB;AACF;AAEA,MAAMO,QAAQ,GAAG,IAAIC,OAAO,CAA6B,CAAC;AAE1D,OAAO,SAASC,cAAcA,CAACjB,MAAoB,EAAgB;EACjE,IAAIkB,OAAO,GAAGH,QAAQ,CAACI,GAAG,CAACnB,MAAM,CAAC;EAClC,IAAI,CAACkB,OAAO,EAAE;IACZA,OAAO,GAAG,IAAIzB,YAAY,CAACO,MAAM,CAAC;IAClCe,QAAQ,CAACK,GAAG,CAACpB,MAAM,EAAEkB,OAAO,CAAC;EAC/B;EACA,OAAOA,OAAO;AAChB;;AAEA;;AAOA,MAAMG,MAAM,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,OAAO,CAAU;AAE1J,MAAMC,QAAoB,GAAGC,MAAM,CAACC,MAAM,CAAC;EACzCb,MAAM,EAAE,IAAI;EACZc,UAAU,EAAE,KAAK;EACjBC,UAAU,EAAE,KAAK;EACjBC,UAAU,EAAE,KAAK;EACjBC,YAAY,EAAE,KAAK;EACnBC,YAAY,EAAE/C,yBAAyB,CAACgD,eAAe;EACvDC,cAAc,EAAE,EAAE;EAClBC,aAAa,EAAE,KAAK;EACpBC,YAAY,EAAE,IAAI;EAClBC,WAAW,EAAEpD,yBAAyB;EACtCqD,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,SAASC,QAAQA,CAACpC,MAAoB,EAAiC;EACrE,MAAMqC,QAAQ,GAAG7C,WAAW,CAACQ,MAAM,CAAC,EAAEsC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC;EACxE,MAAMC,MAAM,GAAGH,QAAQ,EAAEF,UAAU;EACnC,OAAOK,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,aAAa,GAAGA,MAAM,GAAG,IAAI;AACtE;AAEA,SAASC,IAAIA,CAACzC,MAAoB,EAAEkB,OAAqB,EAAc;EACrE,OAAO;IACLP,MAAM,EAAEnB,WAAW,CAACQ,MAAM,CAAC;IAC3ByB,UAAU,EAAEzB,MAAM,CAACyB,UAAU;IAC7BC,UAAU,EAAE1B,MAAM,CAAC0B,UAAU;IAC7BC,UAAU,EAAE3B,MAAM,CAAC2B,UAAU;IAC7BC,YAAY,EAAE5B,MAAM,CAAC4B,YAAY;IACjCC,YAAY,EAAE7B,MAAM,CAAC6B,YAAY;IACjCE,cAAc,EAAE/B,MAAM,CAAC+B,cAAc;IACrCC,aAAa,EAAEd,OAAO,CAACxB,MAAM,KAAK,IAAI;IACtCuC,YAAY,EAAEf,OAAO,CAACxB,MAAM;IAC5BwC,WAAW,EAAElC,MAAM,CAAC0C,gBAAgB;IACpCP,UAAU,EAAEC,QAAQ,CAACpC,MAAM;EAC7B,CAAC;AACH;AAEA,SAAS2C,UAAUA,CAAmBC,CAAI,EAAEC,CAAI,EAAW;EACzD,MAAMC,IAAI,GAAGvB,MAAM,CAACuB,IAAI,CAACF,CAAC,CAAgB;EAC1C,OAAOE,IAAI,CAACC,MAAM,KAAKxB,MAAM,CAACuB,IAAI,CAACD,CAAC,CAAC,CAACE,MAAM,IAAID,IAAI,CAACE,KAAK,CAAEC,GAAG,IAAK1B,MAAM,CAAC2B,EAAE,CAACN,CAAC,CAACK,GAAG,CAAC,EAAEJ,CAAC,CAACI,GAAG,CAAC,CAAC,CAAC;AAChG;;AAEA;AACA,SAASE,WAAWA,CAACnD,MAAoB,EAAE;EACzC,MAAMkB,OAAO,GAAGD,cAAc,CAACjB,MAAM,CAAC;EACtC,IAAIoD,OAAO,GAAG,CAAC;EACf,IAAIC,KAAoD,GAAG,IAAI;EAC/D,OAAO;IACLjD,SAASA,CAACkD,QAAoB,EAAc;MAC1C,MAAM9C,OAAO,GAAGA,CAAA,KAAM;QACpB4C,OAAO,IAAI,CAAC;QACZE,QAAQ,CAAC,CAAC;MACZ,CAAC;MACD,MAAM7C,IAAI,GAAGY,MAAM,CAACkC,GAAG,CAAEC,KAAK,IAAKxD,MAAM,CAACU,EAAE,CAAC8C,KAAK,EAAEhD,OAAO,CAAC,CAAC;MAC7DC,IAAI,CAACgD,IAAI,CAACvC,OAAO,CAACjB,IAAI,CAAC,CAAC,EAAEiB,OAAO,CAACd,SAAS,CAACI,OAAO,CAAC,CAAC;MACrD4C,OAAO,IAAI,CAAC;MACZ,OAAO,MAAM;QACX,KAAK,MAAMtC,GAAG,IAAIL,IAAI,EAAEK,GAAG,CAAC,CAAC;MAC/B,CAAC;IACH,CAAC;IACD4C,WAAWA,CAAA,EAAe;MACxB,IAAIL,KAAK,EAAED,OAAO,KAAKA,OAAO,EAAE,OAAOC,KAAK,CAACM,KAAK;MAClD,MAAMC,IAAI,GAAGnB,IAAI,CAACzC,MAAM,EAAEkB,OAAO,CAAC;MAClC,IAAImC,KAAK,EAAE;QACT;QACA,MAAMnB,WAAW,GAAGS,UAAU,CAACU,KAAK,CAACM,KAAK,CAACzB,WAAW,EAAE0B,IAAI,CAAC1B,WAAW,CAAC,GAAGmB,KAAK,CAACM,KAAK,CAACzB,WAAW,GAAG0B,IAAI,CAAC1B,WAAW;QACtH,MAAM2B,OAAO,GAAG;UAAE,GAAGD,IAAI;UAAE1B;QAAY,CAAC;QACxC,MAAMyB,KAAK,GAAGhB,UAAU,CAACU,KAAK,CAACM,KAAK,EAAEE,OAAO,CAAC,GAAGR,KAAK,CAACM,KAAK,GAAGE,OAAO;QACtER,KAAK,GAAG;UAAED,OAAO;UAAEO;QAAM,CAAC;QAC1B,OAAOA,KAAK;MACd;MACAN,KAAK,GAAG;QAAED,OAAO;QAAEO,KAAK,EAAEC;MAAK,CAAC;MAChC,OAAOA,IAAI;IACb;EACF,CAAC;AACH;AAEA,MAAME,cAAc,GAAGA,CAAA,KAAM,MAAMC,SAAS;AAC5C,MAAMC,QAAQ,GAAGA,CAAA,KAAM1C,QAAQ;;AAE/B;AACA,OAAO,SAAS2C,aAAaA,CAAA,EAAe;EAC1C,MAAMjE,MAAM,GAAGhB,gBAAgB,CAAC,CAAC;EACjC,MAAMkF,MAAM,GAAGvF,OAAO,CAAC,MAAOqB,MAAM,GAAGmD,WAAW,CAACnD,MAAM,CAAC,GAAG,IAAK,EAAE,CAACA,MAAM,CAAC,CAAC;EAC7E,MAAMa,KAAK,GAAGjC,oBAAoB,CAACsF,MAAM,GAAGA,MAAM,CAAC9D,SAAS,GAAG0D,cAAc,EAAEI,MAAM,GAAGA,MAAM,CAACR,WAAW,GAAGM,QAAQ,EAAEA,QAAQ,CAAC;EAChI,MAAMG,OAAO,GAAGxF,OAAO,CAAC,MAAMyF,YAAY,CAACpE,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAC7D,OAAOrB,OAAO,CAAC,OAAO;IAAE,GAAGkC,KAAK;IAAE,GAAGsD;EAAQ,CAAC,CAAC,EAAE,CAACtD,KAAK,EAAEsD,OAAO,CAAC,CAAC;AACpE;AAEA,SAASC,YAAYA,CAACpE,MAA2B,EAAgB;EAC/D,eAAeqE,IAAIA,CAAIC,IAA0C,EAAc;IAC7E,IAAI,CAACtE,MAAM,EAAE,MAAM,IAAIjB,QAAQ,CAAC,eAAe,EAAE,gEAAgE,CAAC;IAClH,IAAI;MACF,OAAO,MAAMuF,IAAI,CAACtE,MAAM,CAAC;IAC3B,CAAC,SAAS;MACR;MACAiB,cAAc,CAACjB,MAAM,CAAC,CAACQ,OAAO,CAAC,CAAC;IAClC;EACF;EACA,OAAO;IACL+D,OAAO,EAAEA,CAACC,OAAO,GAAG,CAAC,CAAC,KAAKH,IAAI,CAAEI,CAAC,IAAKC,cAAc,CAACD,CAAC,EAAED,OAAO,CAAC,CAAC;IAClEG,SAAS,EAAEA,CAAA,KAAMN,IAAI,CAAEI,CAAC,IAAKA,CAAC,CAACE,SAAS,CAAC,CAAC,CAAC;IAC3CC,aAAa,EAAGlE,EAAE,IAAK2D,IAAI,CAAEI,CAAC,IAAKA,CAAC,CAACG,aAAa,CAAClE,EAAE,CAAC,CAAC;IACvDmE,aAAa,EAAGnE,EAAE,IAAK2D,IAAI,CAAEI,CAAC,IAAKA,CAAC,CAACI,aAAa,CAACnE,EAAE,CAAC,CAAC;IACvDoE,eAAe,EAAGC,OAAO,IAAKV,IAAI,CAAEI,CAAC,IAAKA,CAAC,CAACK,eAAe,CAACC,OAAO,CAAC,CAAC;IACrEC,eAAe,EAAGD,OAAO,IAAKV,IAAI,CAAC,MAAOI,CAAC,IAAK;MAC9C,MAAMQ,YAAY,CAACR,CAAC,EAAEM,OAAO,CAAC;MAC9B,OAAON,CAAC,CAACO,eAAe,CAACD,OAAO,CAAC;IACnC,CAAC,CAAC;IACFG,iBAAiB,EAAGC,SAAS,IAAKd,IAAI,CAAEI,CAAC,IAAKA,CAAC,CAACS,iBAAiB,CAACC,SAAS,CAAC,CAAC;IAC7EC,YAAY,EAAEA,CAAA,KAAMf,IAAI,CAAEI,CAAC,IAAKW,YAAY,CAACX,CAAC,CAAC,CAAC;IAChDY,gBAAgB,EAAGb,OAAO,IAAKH,IAAI,CAAC,MAAOI,CAAC,IAAM,MAAMA,CAAC,CAACa,aAAa,CAACd,OAAO,CAAgC,CAAC;IAChHe,eAAe,EAAEA,CAAA,KAAMlB,IAAI,CAAEI,CAAC,IAAKA,CAAC,CAACe,eAAe,CAAC,CAAC;EACxD,CAAC;AACH;;AAEA;;AAEA;AACA,MAAM/D,UAAU,GAAG,IAAIgE,OAAO,CAAe,CAAC;AAE9C,eAAef,cAAcA,CAAC1E,MAAoB,EAAEwE,OAA4B,EAAiB;EAC/F;EACA,MAAM;IAAEkB,KAAK,GAAG,IAAI;IAAEC,KAAK,GAAG,IAAI;IAAExD,UAAU,EAAEyD,WAAW;IAAE,GAAGC;EAAe,CAAC,GAAGrB,OAAO;EAC1F,IAAIkB,KAAK,KAAK,KAAK,IAAIC,KAAK,KAAK,KAAK,EAAE,MAAM,IAAIG,SAAS,CAAC,uCAAuC,CAAC;EACpG;EACA,IAAI9F,MAAM,CAAC+F,eAAe,KAAK,WAAW,EAAE,MAAM,IAAIhH,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAC;EAC5G,MAAMiH,IAAI,GAAGhG,MAAM,CAACiG,IAAI,EAAED,IAAI;EAC9B,IAAIA,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,QAAQ,EAAE,MAAM,IAAIjH,QAAQ,CAAC,WAAW,EAAE,oCAAoC,CAAC;EAC/G,IAAI0C,UAAU,CAACyE,GAAG,CAAClG,MAAM,CAAC,IAAIR,WAAW,CAACQ,MAAM,CAAC,EAAEmG,SAAS,CAAC,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,CAACC,UAAU,KAAK,MAAM,CAAC,EAAE;IAC3G,MAAM,IAAIvH,QAAQ,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;EACzF;EACA,MAAMmD,WAAW,GAAGlC,MAAM,CAAC0C,gBAAgB;EAC3C,IAAIgD,KAAK,KAAK,KAAK,IAAI,CAACxD,WAAW,CAACwD,KAAK,EAAE,MAAM,IAAI3G,QAAQ,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;EACzH,IAAI4G,KAAK,KAAK,KAAK,IAAI,CAACzD,WAAW,CAACyD,KAAK,EAAE,MAAM,IAAI5G,QAAQ,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;EACzH,IAAI,CAACK,sBAAsB,CAAC,CAAC,EAAE,MAAMF,aAAa,CAAC,CAAC;EAEpDuC,UAAU,CAACnB,GAAG,CAACN,MAAM,CAAC;EACtB,IAAI;IACF,MAAMuG,KAA4B,GAAG,EAAE;IACvC,IAAIZ,KAAK,KAAK,KAAK,EAAEY,KAAK,CAAC9C,IAAI,CAAC,QAAQ,CAAC;IACzC,IAAIiC,KAAK,KAAK,KAAK,EAAEa,KAAK,CAAC9C,IAAI,CAAC,YAAY,CAAC;IAC7C,MAAM+C,QAAQ,GAAG,MAAMrH,uBAAuB,CAACoH,KAAK,CAAC;IACrD,KAAK,MAAME,IAAI,IAAIF,KAAK,EAAE;MACxB,MAAMG,MAAM,GAAGF,QAAQ,CAACC,IAAI,CAAC;MAC7B,IAAIC,MAAM,KAAK,SAAS,EAAE,MAAMzH,iBAAiB,CAACwH,IAAI,EAAEC,MAAM,CAAC;IACjE;IACA;IACA;IACA,IAAI1G,MAAM,CAAC+F,eAAe,KAAK,WAAW,EAAE,MAAM,IAAIhH,QAAQ,CAAC,eAAe,EAAE,8DAA8D,CAAC;IAC/I,MAAM4H,WAAW,GAAGC,kBAAkB,CAACpC,OAAO,EAAEtC,WAAW,CAAC;IAC5D,MAAM2E,QAAQ,GAAGxH,mBAAmB,CAAC,CAAC;IACtC,MAAMsB,MAAM,GAAI,MAAMkG,QAAQ,CAACC,YAAY,CAAEH,WAAW,CAA6B;IACrF,IAAI;MACF;MACA,MAAM3G,MAAM,CAACuE,OAAO,CAAC5D,MAAM,EAAEgG,WAAW,EAAEd,cAAc,CAAC;IAC3D,CAAC,CAAC,OAAOkB,KAAK,EAAE;MACd;MACA,MAAMC,IAAI,GAAG1H,UAAU,CAAC,CAAC;MACzB,MAAM2H,MAAM,GAAItG,MAAM,CAA2BwF,SAAS,CAAC,CAAC;MAC5Da,IAAI,CAACE,OAAO,CAACvG,MAA+B,CAAC;MAC7C,KAAK,MAAM0F,KAAK,IAAIY,MAAM,EAAED,IAAI,CAACG,IAAI,CAACd,KAAkB,CAAC;MACzD,MAAMU,KAAK;IACb;EACF,CAAC,SAAS;IACRtF,UAAU,CAAClB,MAAM,CAACP,MAAM,CAAC;EAC3B;AACF;;AAEA;AACA,MAAMoH,MAA+D,GAAG;EACtE,OAAO,EAAE;IAAEC,KAAK,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;EACtC,MAAM,EAAE;IAAED,KAAK,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAI,CAAC;EACpC,MAAM,EAAE;IAAED,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAI;AACpC,CAAC;;AAED;AACA,SAASV,kBAAkBA,CAACpC,OAA4B,EAAEtC,WAA6B,EAAwB;EAC7G,MAAM;IAAEwD,KAAK,GAAG,IAAI;IAAEC,KAAK,GAAG;EAAK,CAAC,GAAGnB,OAAO;EAC9C,OAAO;IACLkB,KAAK,EAAEA,KAAK,KAAK,IAAI,GAAG6B,UAAU,CAAC/C,OAAO,CAAC5C,YAAY,KAAK,IAAI,IAAIM,WAAW,CAACsF,eAAe,KAAK,IAAI,CAAC,GAAG9B,KAAK;IACjHC,KAAK,EAAEA,KAAK,KAAK,IAAI,GAAG8B,MAAM,CAACjD,OAAO,EAAEtC,WAAW,CAAC,GAAGyD;EACzD,CAAC;AACH;AAEA,SAAS4B,UAAUA,CAACG,EAAW,EAAoB;EACjD,MAAMf,WAA6B,GAAG;IAAEgB,gBAAgB,EAAE,IAAI;IAAEC,gBAAgB,EAAE,IAAI;IAAEC,eAAe,EAAE;EAAK,CAAC;EAC/G;EACA,IAAIH,EAAE,EAAEf,WAAW,CAACmB,YAAY,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC/C,OAAOpB,WAAW;AACpB;AAEA,SAASc,MAAMA,CAACjD,OAA4B,EAAEtC,WAA6B,EAAoB;EAC7F,MAAM8F,GAAG,GAAGxD,OAAO,CAACW,SAAS,KAAK,EAAE,IAAIjD,WAAW,CAAC+F,YAAY,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;EACjF,MAAM;IAAEZ,KAAK;IAAEC;EAAO,CAAC,GAAGF,MAAM,CAACvI,cAAc,CAAC2F,OAAO,CAACO,OAAO,EAAE;IAAEmD,UAAU,EAAEhG,WAAW,CAACJ;EAAgB,CAAC,CAAC,CAAC;EAC9G,OAAO;IACLuF,KAAK,EAAE;MAAEU,KAAK,EAAEV;IAAM,CAAC;IACvBC,MAAM,EAAE;MAAES,KAAK,EAAET;IAAO,CAAC;IACzBnC,SAAS,EAAE;MAAE4C,KAAK,EAAEC,GAAG;MAAEG,GAAG,EAAEH;IAAI,CAAC;IACnC7F,UAAU,EAAEqC,OAAO,CAACrC,UAAU,IAAI;EACpC,CAAC;AACH;;AAEA;AACA,eAAe8C,YAAYA,CAACjF,MAAoB,EAAE+E,OAAqB,EAAiB;EACtF,MAAMsB,KAAK,GAAG7G,WAAW,CAACQ,MAAM,CAAC,EAAEsC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;EACtD,IAAI,CAAC+D,KAAK,IAAIA,KAAK,CAACC,UAAU,KAAK,MAAM,EAAE;EAC3C,MAAM8B,KAAK,GAAGhB,MAAM,CAACvI,cAAc,CAACkG,OAAO,EAAE;IAAEmD,UAAU,EAAElI,MAAM,CAAC0C,gBAAgB,CAACZ;EAAgB,CAAC,CAAC,CAAC;EACtG,MAAM;IAAEuF,KAAK,GAAG,CAAC;IAAEC,MAAM,GAAG;EAAE,CAAC,GAAGjB,KAAK,CAAC9D,WAAW,CAAC,CAAC;EACrD,IAAI8F,IAAI,CAACF,GAAG,CAACd,KAAK,EAAEC,MAAM,CAAC,IAAIc,KAAK,CAACf,KAAK,IAAIgB,IAAI,CAACC,GAAG,CAACjB,KAAK,EAAEC,MAAM,CAAC,IAAIc,KAAK,CAACd,MAAM,EAAE;EACvF,IAAI;IACF,MAAMjB,KAAK,CAACkC,gBAAgB,CAAC;MAAE,GAAGlC,KAAK,CAACmC,cAAc,CAAC,CAAC;MAAEnB,KAAK,EAAE;QAAEU,KAAK,EAAEK,KAAK,CAACf;MAAM,CAAC;MAAEC,MAAM,EAAE;QAAES,KAAK,EAAEK,KAAK,CAACd;MAAO;IAAE,CAAC,CAAC;EAC7H,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ;;AAEA;;AAEA;AACA,MAAMmB,SAAS,GAAG,IAAIzH,OAAO,CAAiC,CAAC;AAE/D,SAASoE,YAAYA,CAACpF,MAAoB,EAAoB;EAC5D,MAAM0I,QAAQ,GAAGD,SAAS,CAACtH,GAAG,CAACnB,MAAM,CAAC,IAAI2I,OAAO,CAACC,OAAO,CAAC,CAAC;EAC3D,MAAMhF,IAAI,GAAG8E,QAAQ,CAACG,KAAK,CAAC,MAAM9E,SAAS,CAAC,CAAC+E,IAAI,CAAC,MAAMC,UAAU,CAAC/I,MAAM,CAAC,CAAC;EAC3EyI,SAAS,CAACrH,GAAG,CAACpB,MAAM,EAAE4D,IAAI,CAAC;EAC3B,OAAOA,IAAI;AACb;AAEA,eAAemF,UAAUA,CAAC/I,MAAoB,EAAoB;EAChE,MAAMqG,KAAK,GAAG7G,WAAW,CAACQ,MAAM,CAAC,EAAEsC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;EACtD,IAAI,CAAC+D,KAAK,IAAIA,KAAK,CAACC,UAAU,KAAK,MAAM,EAAE;IACzC,MAAM,IAAIvH,QAAQ,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;EACvF;EACA,MAAMsD,QAAQ,GAAGgE,KAAK,CAAC9D,WAAW,CAAC,CAAC;EACpC,MAAMyG,OAAO,GAAG,MAAMzJ,WAAW,CAAC,CAAC;EACnC,MAAM0J,OAAO,GAAGD,OAAO,CAACE,IAAI,CAAEzE,CAAC,IAAKA,CAAC,CAAC0E,QAAQ,KAAK9G,QAAQ,CAAC8G,QAAQ,CAAC;EACrE,MAAMC,KAAK,GAAGH,OAAO,GAAGA,OAAO,CAACzG,MAAM,KAAK,OAAO,GAAGH,QAAQ,CAACF,UAAU,KAAK,aAAa;EAC1F,MAAMkH,MAAM,GAAGL,OAAO,CAACE,IAAI,CAAEzE,CAAC,IAAKA,CAAC,CAAC0E,QAAQ,KAAK9G,QAAQ,CAAC8G,QAAQ,IAAK1E,CAAC,CAACjC,MAAM,KAAK,OAAO,KAAM4G,KAAK,CAAC;EACxG,IAAI,CAACC,MAAM,EAAE,OAAOD,KAAK;EACzB,MAAMpJ,MAAM,CAACsJ,YAAY,CAAC,YAAY,EAAED,MAAM,CAACF,QAAQ,CAAC;EACxD,OAAOE,MAAM,CAAC7G,MAAM,KAAK,OAAO;AAClC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useMemo","useSyncExternalStore","allowedQuality","DEFAULT_MEDIA_PERMISSIONS","RpcError","useVoltkitClient","permissionRefused","webrtcMissing","requestMediaPermissions","registerVoltkitGlobals","reactNativePlatform","streamBook","listCameras","localStream","LocalSession","screen","listeners","Set","holders","stopListening","constructor","client","hold","listen","held","subscribe","listener","add","delete","changed","offs","on","stream","endScreen","state","off","sessions","WeakMap","localSessionOf","session","get","set","EVENTS","FALLBACK","Object","freeze","publishing","micEnabled","camEnabled","audioQuality","videoQuality","maxVideoQuality","videoFrameRate","screenSharing","screenStream","permissions","facingMode","facingOf","settings","getVideoTracks","getSettings","facing","read","mediaPermissions","sameFields","a","b","keys","length","every","key","is","localSource","version","cache","onChange","map","event","push","getSnapshot","value","next","settled","noSubscription","undefined","fallback","useLocalMedia","source","actions","localActions","call","task","publish","options","c","publishDevices","unpublish","setMicEnabled","setCamEnabled","setAudioQuality","quality","setVideoQuality","raiseCapture","setVideoFrameRate","frameRate","switchCamera","startScreenShare","publishScreen","stopScreenShare","unpublishScreen","WeakSet","audio","video","_facingMode","publishOptions","TypeError","connectionState","role","info","has","getTracks","some","track","readyState","stopped","unwatch","local","stoppedError","fresh","refreshPermissions","kinds","statuses","kind","status","constraints","captureConstraints","platform","getUserMedia","release","book","tracks","stop","error","hint","refresh","refreshMediaPermissions","FRAMES","width","height","microphone","audioQualityMax","camera","hd","echoCancellation","noiseSuppression","autoGainControl","channelCount","ideal","fps","maxFrameRate","maxQuality","max","frame","Math","min","applyConstraints","getConstraints","switching","previous","Promise","resolve","catch","then","flipCamera","cameras","current","find","deviceId","front","target","switchDevice"],"sourceRoot":"../../src","sources":["local-media.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/native.js
CHANGED
|
@@ -9,7 +9,7 @@ import { Platform } from 'react-native';
|
|
|
9
9
|
import NativeVoltkitRtc from "./specs/NativeVoltkitRtc.js";
|
|
10
10
|
import { iosUnsupported, logError, nativeMissing } from "./errors.js";
|
|
11
11
|
/** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
|
|
12
|
-
export const SDK_VERSION = '0.1.
|
|
12
|
+
export const SDK_VERSION = '0.1.2';
|
|
13
13
|
|
|
14
14
|
/** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
|
|
15
15
|
export function nativeModule() {
|
|
@@ -51,7 +51,7 @@ export function localStream(client) {
|
|
|
51
51
|
return client.local ?? null;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.
|
|
54
|
+
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
|
|
55
55
|
export function describePlatform() {
|
|
56
56
|
return `ReactNative ${Platform.OS} ${String(Platform.Version)}; react-native-webrtc ${webrtcVersion() ?? 'unknown'}; @voltkit-rtc/react-native ${SDK_VERSION}`;
|
|
57
57
|
}
|
|
@@ -2,7 +2,7 @@ import type { EventSubscription } from 'react-native';
|
|
|
2
2
|
import { type AudioDevice, type Constants, type Spec } from './specs/NativeVoltkitRtc';
|
|
3
3
|
import type { MediaDevice } from '@voltkit-rtc/client';
|
|
4
4
|
/** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
|
|
5
|
-
export declare const SDK_VERSION = "0.1.
|
|
5
|
+
export declare const SDK_VERSION = "0.1.2";
|
|
6
6
|
/** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
|
|
7
7
|
export declare function nativeModule(): Spec | null;
|
|
8
8
|
/** The module's constants, read once: the audio mode, screen sharing, the call service as the manifest declares them. */
|
|
@@ -72,7 +72,7 @@ export interface MediaStreamLike {
|
|
|
72
72
|
export declare function localStream(client: {
|
|
73
73
|
readonly local: unknown;
|
|
74
74
|
}): MediaStreamLike | null;
|
|
75
|
-
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.
|
|
75
|
+
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
|
|
76
76
|
export declare function describePlatform(): string;
|
|
77
77
|
/**
|
|
78
78
|
* What the client reads to pick its defaults: a phone or tablet, so two simulcast layers and the H.264 decision
|
|
@@ -2,7 +2,7 @@ import type { EventSubscription } from 'react-native';
|
|
|
2
2
|
import { type AudioDevice, type Constants, type Spec } from './specs/NativeVoltkitRtc.js';
|
|
3
3
|
import type { MediaDevice } from '@voltkit-rtc/client';
|
|
4
4
|
/** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
|
|
5
|
-
export declare const SDK_VERSION = "0.1.
|
|
5
|
+
export declare const SDK_VERSION = "0.1.2";
|
|
6
6
|
/** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
|
|
7
7
|
export declare function nativeModule(): Spec | null;
|
|
8
8
|
/** The module's constants, read once: the audio mode, screen sharing, the call service as the manifest declares them. */
|
|
@@ -72,7 +72,7 @@ export interface MediaStreamLike {
|
|
|
72
72
|
export declare function localStream(client: {
|
|
73
73
|
readonly local: unknown;
|
|
74
74
|
}): MediaStreamLike | null;
|
|
75
|
-
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.
|
|
75
|
+
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
|
|
76
76
|
export declare function describePlatform(): string;
|
|
77
77
|
/**
|
|
78
78
|
* What the client reads to pick its defaults: a phone or tablet, so two simulcast layers and the H.264 decision
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voltkit-rtc/react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "React Native SDK for VoltKit RTC: calls, audio rooms and live video on Android (iOS in preview), with the hooks of @voltkit-rtc/react, background calls, audio routing and an Expo config plugin.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"voltkit",
|
package/src/local-media.ts
CHANGED
|
@@ -307,13 +307,28 @@ async function publishDevices(client: StreamClient, options: LocalPublishOptions
|
|
|
307
307
|
if (publishing.has(client) || localStream(client)?.getTracks().some((track) => track.readyState === 'live')) {
|
|
308
308
|
throw new RpcError('source-already-published', 'already publishing: unpublish() first');
|
|
309
309
|
}
|
|
310
|
-
const permissions = client.mediaPermissions;
|
|
311
|
-
if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
|
|
312
|
-
if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
|
|
313
|
-
if (!registerVoltkitGlobals()) throw webrtcMissing();
|
|
314
|
-
|
|
315
310
|
publishing.add(client);
|
|
311
|
+
// Stop wins over a start still under way (0.1.2): unpublish() -- the user's Stop -- while the permission dialog is up
|
|
312
|
+
// or the camera is opening says so with localStreamChanged(null). No device opens after it, what opened is released,
|
|
313
|
+
// nothing is published, and this start rejects with `unpublished`.
|
|
314
|
+
let stopped = false;
|
|
315
|
+
const unwatch = client.on('localStreamChanged', (local) => {
|
|
316
|
+
if (local === null) stopped = true;
|
|
317
|
+
});
|
|
318
|
+
const stoppedError = () => new RpcError('unpublished', 'unpublish() ran while the camera and microphone were opening');
|
|
316
319
|
try {
|
|
320
|
+
let permissions = client.mediaPermissions;
|
|
321
|
+
if ((audio !== false && !permissions.audio) || (video !== false && !permissions.video)) {
|
|
322
|
+
// A hint from the join (client 0.9.14): the controller is asked before refusing. Null: it cannot say, and the
|
|
323
|
+
// client's publish lets it decide.
|
|
324
|
+
const fresh = await refreshPermissions(client, permissions);
|
|
325
|
+
permissions = fresh ?? { ...permissions, audio: true, video: true };
|
|
326
|
+
if (stopped) throw stoppedError();
|
|
327
|
+
}
|
|
328
|
+
if (audio !== false && !permissions.audio) throw new RpcError('media-disabled', 'audio is switched off for this project');
|
|
329
|
+
if (video !== false && !permissions.video) throw new RpcError('media-disabled', 'video is switched off for this project');
|
|
330
|
+
if (!registerVoltkitGlobals()) throw webrtcMissing();
|
|
331
|
+
|
|
317
332
|
const kinds: MediaPermissionKind[] = [];
|
|
318
333
|
if (video !== false) kinds.push('camera');
|
|
319
334
|
if (audio !== false) kinds.push('microphone');
|
|
@@ -323,27 +338,50 @@ async function publishDevices(client: StreamClient, options: LocalPublishOptions
|
|
|
323
338
|
if (status !== 'granted') throw permissionRefused(kind, status);
|
|
324
339
|
}
|
|
325
340
|
// The dialog stays up as long as the user thinks: the call may be over by now (the screen unmounted, a kick, the
|
|
326
|
-
// room closed). Nothing opens a device
|
|
341
|
+
// room closed), or the user tapped Stop. Nothing opens a device then.
|
|
342
|
+
if (stopped) throw stoppedError();
|
|
327
343
|
if (client.connectionState !== 'connected') throw new RpcError('not-connected', 'the session ended while the permissions were being asked for');
|
|
328
344
|
const constraints = captureConstraints(options, permissions);
|
|
329
345
|
const platform = reactNativePlatform();
|
|
330
346
|
const stream = (await platform.getUserMedia!(constraints)) as unknown as ClientStream;
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
await client.publish(stream, constraints, publishOptions);
|
|
334
|
-
} catch (error) {
|
|
335
|
-
// Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
|
|
347
|
+
// Released here, the stream before its tracks (platform/streams.ts): the client kept none of it.
|
|
348
|
+
const release = () => {
|
|
336
349
|
const book = streamBook();
|
|
337
350
|
const tracks = (stream as unknown as StreamLike).getTracks();
|
|
338
351
|
book.release(stream as unknown as StreamLike);
|
|
339
352
|
for (const track of tracks) book.stop(track as TrackLike);
|
|
353
|
+
};
|
|
354
|
+
if (stopped) {
|
|
355
|
+
release();
|
|
356
|
+
throw stoppedError();
|
|
357
|
+
}
|
|
358
|
+
try {
|
|
359
|
+
// With the constraints, a reconnect that finds the devices gone opens them again.
|
|
360
|
+
await client.publish(stream, constraints, publishOptions);
|
|
361
|
+
} catch (error) {
|
|
362
|
+
release();
|
|
340
363
|
throw error;
|
|
341
364
|
}
|
|
342
365
|
} finally {
|
|
366
|
+
if (typeof unwatch === 'function') unwatch();
|
|
343
367
|
publishing.delete(client);
|
|
344
368
|
}
|
|
345
369
|
}
|
|
346
370
|
|
|
371
|
+
/**
|
|
372
|
+
* The project's permissions as the controller says now (client 0.9.14), or null when it cannot say. A client older
|
|
373
|
+
* than 0.9.14 cannot ask: its hint stands. A failed question leaves the hint standing too.
|
|
374
|
+
*/
|
|
375
|
+
async function refreshPermissions(client: StreamClient, hint: MediaPermissions): Promise<MediaPermissions | null> {
|
|
376
|
+
const refresh = (client as { refreshMediaPermissions?: () => Promise<MediaPermissions | null> }).refreshMediaPermissions;
|
|
377
|
+
if (typeof refresh !== 'function') return hint;
|
|
378
|
+
try {
|
|
379
|
+
return await refresh.call(client);
|
|
380
|
+
} catch {
|
|
381
|
+
return hint;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
347
385
|
/** Each quality's 16:9 frame, as the SDK sends it. */
|
|
348
386
|
const FRAMES: Record<VideoQuality, { width: number; height: number }> = {
|
|
349
387
|
'1080p': { width: 1920, height: 1080 },
|
package/src/native.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { iosUnsupported, logError, nativeMissing } from './errors';
|
|
|
10
10
|
import type { AudioDeviceType, DeviceKind, MediaDevice } from '@voltkit-rtc/client';
|
|
11
11
|
|
|
12
12
|
/** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
|
|
13
|
-
export const SDK_VERSION = '0.1.
|
|
13
|
+
export const SDK_VERSION = '0.1.2';
|
|
14
14
|
|
|
15
15
|
/** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
|
|
16
16
|
export function nativeModule(): Spec | null {
|
package/src/platform/common.ts
CHANGED
|
@@ -89,7 +89,7 @@ export function localStream(client: { readonly local: unknown }): MediaStreamLik
|
|
|
89
89
|
return (client.local as MediaStreamLike | null | undefined) ?? null;
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.
|
|
92
|
+
/** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.2`. */
|
|
93
93
|
export function describePlatform(): string {
|
|
94
94
|
return `ReactNative ${Platform.OS} ${String(Platform.Version)}; react-native-webrtc ${webrtcVersion() ?? 'unknown'}; @voltkit-rtc/react-native ${SDK_VERSION}`;
|
|
95
95
|
}
|