mediasfu-shared 1.0.5 → 1.0.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/dist/index.cjs +38 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +38 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/consumers/createSendTransport.ts +51 -2
package/dist/index.js
CHANGED
|
@@ -1702,6 +1702,21 @@ const connectSendTransportVideo = async ({
|
|
|
1702
1702
|
throw error;
|
|
1703
1703
|
}
|
|
1704
1704
|
};
|
|
1705
|
+
const waitForReadyDevice = async (parameters, attempts = 20, delayMs = 100) => {
|
|
1706
|
+
let resolvedDevice = parameters.getUpdatedAllParams().device ?? parameters.device;
|
|
1707
|
+
for (let attempt = 0; !resolvedDevice && attempt < attempts; attempt += 1) {
|
|
1708
|
+
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
1709
|
+
resolvedDevice = parameters.getUpdatedAllParams().device ?? parameters.device;
|
|
1710
|
+
}
|
|
1711
|
+
return resolvedDevice;
|
|
1712
|
+
};
|
|
1713
|
+
const notifyDeviceNotReady = (parameters) => {
|
|
1714
|
+
parameters.showAlert?.({
|
|
1715
|
+
message: "Media device is still initializing. Please try screen sharing again in a moment.",
|
|
1716
|
+
type: "danger",
|
|
1717
|
+
duration: 3e3
|
|
1718
|
+
});
|
|
1719
|
+
};
|
|
1705
1720
|
const createLocalSendTransport = async ({
|
|
1706
1721
|
option,
|
|
1707
1722
|
parameters
|
|
@@ -1719,6 +1734,10 @@ const createLocalSendTransport = async ({
|
|
|
1719
1734
|
updateLocalTransportCreated,
|
|
1720
1735
|
connectSendTransport: connectSendTransport2
|
|
1721
1736
|
} = parameters;
|
|
1737
|
+
const updatedParams = parameters.getUpdatedAllParams();
|
|
1738
|
+
device = updatedParams.device ?? device;
|
|
1739
|
+
socket = updatedParams.socket ?? socket;
|
|
1740
|
+
localSocket = updatedParams.localSocket ?? localSocket;
|
|
1722
1741
|
if (!localSocket || !localSocket.id || socket.id === localSocket.id) {
|
|
1723
1742
|
return;
|
|
1724
1743
|
}
|
|
@@ -1730,7 +1749,12 @@ const createLocalSendTransport = async ({
|
|
|
1730
1749
|
console.error("Error in local createWebRtcTransport:", params.error);
|
|
1731
1750
|
return;
|
|
1732
1751
|
}
|
|
1733
|
-
|
|
1752
|
+
const resolvedDevice = await waitForReadyDevice(parameters) ?? device;
|
|
1753
|
+
if (!resolvedDevice) {
|
|
1754
|
+
notifyDeviceNotReady(parameters);
|
|
1755
|
+
return;
|
|
1756
|
+
}
|
|
1757
|
+
localProducerTransport = await resolvedDevice.createSendTransport(params);
|
|
1734
1758
|
if (updateLocalProducerTransport) {
|
|
1735
1759
|
updateLocalProducerTransport(localProducerTransport);
|
|
1736
1760
|
}
|
|
@@ -1805,6 +1829,13 @@ const createSendTransport = async ({
|
|
|
1805
1829
|
const updatedParams = parameters.getUpdatedAllParams();
|
|
1806
1830
|
device = updatedParams.device;
|
|
1807
1831
|
socket = updatedParams.socket;
|
|
1832
|
+
if (!device) {
|
|
1833
|
+
device = await waitForReadyDevice(parameters);
|
|
1834
|
+
}
|
|
1835
|
+
if (!device) {
|
|
1836
|
+
notifyDeviceNotReady(parameters);
|
|
1837
|
+
return;
|
|
1838
|
+
}
|
|
1808
1839
|
try {
|
|
1809
1840
|
await createLocalSendTransport({ option, parameters });
|
|
1810
1841
|
} catch (error) {
|
|
@@ -1818,7 +1849,12 @@ const createSendTransport = async ({
|
|
|
1818
1849
|
console.error("Error in createWebRtcTransport:", params.error);
|
|
1819
1850
|
return;
|
|
1820
1851
|
}
|
|
1821
|
-
|
|
1852
|
+
const resolvedDevice = await waitForReadyDevice(parameters) ?? device;
|
|
1853
|
+
if (!resolvedDevice) {
|
|
1854
|
+
notifyDeviceNotReady(parameters);
|
|
1855
|
+
return;
|
|
1856
|
+
}
|
|
1857
|
+
producerTransport = await resolvedDevice.createSendTransport(params);
|
|
1822
1858
|
updateProducerTransport(producerTransport);
|
|
1823
1859
|
producerTransport.on(
|
|
1824
1860
|
"connect",
|