File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -258,12 +258,7 @@ export class TransportManager {
258258 errback : ( error : unknown ) => void ,
259259 ) => {
260260 try {
261- if ( sendTransport . connectionState === "new" ) {
262- await client . connectWebRtcTransport (
263- sendTransportId ,
264- dtlsParameters ,
265- ) ;
266- }
261+ await client . connectWebRtcTransport ( sendTransportId , dtlsParameters ) ;
267262 callback ( ) ;
268263 } catch ( error ) {
269264 errback ( error ) ;
@@ -329,12 +324,7 @@ export class TransportManager {
329324 errback : ( error : unknown ) => void ,
330325 ) => {
331326 try {
332- if ( recvTransport . connectionState === "new" ) {
333- await client . connectWebRtcTransport (
334- recvTransport . id ,
335- dtlsParameters ,
336- ) ;
337- }
327+ await client . connectWebRtcTransport ( recvTransport . id , dtlsParameters ) ;
338328 callback ( ) ;
339329 } catch ( error ) {
340330 errback ( error ) ;
Original file line number Diff line number Diff line change @@ -9,6 +9,39 @@ import { TransportManager } from "./media/TransportManager.ts";
99import { VideoElementManager } from "./media/VideoElementManager.js" ;
1010import { getSFUClient } from "./sfu-client.js" ;
1111
12+ function createMediaHandler ( ) {
13+ return {
14+ localStream : null ,
15+ audioProducer : null ,
16+ videoProducer : null ,
17+ screenProducer : null ,
18+ setProducers ( producers = { } ) {
19+ Object . assign ( this , producers ) ;
20+ } ,
21+ stopScreenShare ( ) {
22+ this . screenProducer = null ;
23+ } ,
24+ cleanup ( ) {
25+ for ( const producer of [
26+ this . audioProducer ,
27+ this . videoProducer ,
28+ this . screenProducer ,
29+ ] ) {
30+ try {
31+ producer ?. close ?. ( ) ;
32+ } catch ( error ) {
33+ console . warn ( "Failed to close producer during cleanup:" , error ) ;
34+ }
35+ }
36+
37+ this . localStream = null ;
38+ this . audioProducer = null ;
39+ this . videoProducer = null ;
40+ this . screenProducer = null ;
41+ } ,
42+ } ;
43+ }
44+
1245export class SFUMeetingManager {
1346 constructor ( ) {
1447 this . meetingId = null ;
@@ -24,6 +57,7 @@ export class SFUMeetingManager {
2457 this . participantManager = new ParticipantManager ( ) ;
2558 this . consumerManager = new ConsumerManager ( ) ;
2659 this . transportManager = new TransportManager ( ) ;
60+ this . mediaHandler = createMediaHandler ( ) ;
2761
2862 this . sfuClient = null ;
2963 this . eventHandlers = { } ;
You can’t perform that action at this time.
0 commit comments