@@ -49,6 +49,10 @@ public class E2EEManager: NSObject, ObservableObject, Loggable {
4949 self . log ( " E2EEManager::setup: local participant \( self . room!. localParticipant!. identity) track \( publication. sid) encryptionType is none, skip " )
5050 return
5151 }
52+ if publication. track? . rtpSender == nil {
53+ self . log ( " E2EEManager::setup: publication.track?.rtpSender is nil, skip to create FrameCryptor! " )
54+ return
55+ }
5256 let fc = addRtpSender ( sender: publication. track!. rtpSender!, participantId: self . room!. localParticipant!. identity, trackSid: publication. sid)
5357 trackPublications [ fc] = publication
5458 } )
@@ -59,6 +63,10 @@ public class E2EEManager: NSObject, ObservableObject, Loggable {
5963 self . log ( " E2EEManager::setup: remote participant \( participant. identity) track \( publication. sid) encryptionType is none, skip " )
6064 return
6165 }
66+ if publication. track? . rtpReceiver == nil {
67+ self . log ( " E2EEManager::setup: publication.track?.rtpReceiver is nil, skip to create FrameCryptor! " )
68+ return
69+ }
6270 let fc = addRtpReceiver ( receiver: publication. track!. rtpReceiver!, participantId: participant. identity, trackSid: publication. sid)
6371 trackPublications [ fc] = publication
6472 } )
@@ -112,7 +120,6 @@ extension E2EEManager: RTCFrameCryptorDelegate {
112120 if self . room == nil {
113121 self . log ( " frameCryptor didStateChangeWithParticipantId \( participantId) with state \( state. rawValue) room is nil " )
114122 return
115-
116123 }
117124 self . room? . delegates. notify { delegate in
118125 delegate. room ? ( self . room!, publication: publication!, didUpdateE2EEState: state. toLKType ( ) )
@@ -127,7 +134,11 @@ extension E2EEManager: RoomDelegate {
127134 self . log ( " E2EEManager::RoomDelegate: local participant \( localParticipant. identity) track \( publication. sid) encryptionType is none, skip " )
128135 return
129136 }
130- let fc = addRtpSender ( sender: localParticipant. rtpSender!, participantId: localParticipant. identity, trackSid: publication. sid)
137+ if publication. track? . rtpSender == nil {
138+ self . log ( " E2EEManager::RoomDelegate: publication.track?.rtpSender is nil, skip to create FrameCryptor! " )
139+ return
140+ }
141+ let fc = addRtpSender ( sender: publication. track!. rtpSender!, participantId: localParticipant. identity, trackSid: publication. sid)
131142 trackPublications [ fc] = publication
132143 }
133144
@@ -150,7 +161,11 @@ extension E2EEManager: RoomDelegate {
150161 self . log ( " E2EEManager::RoomDelegate: remote participant \( participant. identity) track \( publication. sid) encryptionType is none, skip " )
151162 return
152163 }
153- let fc = addRtpReceiver ( receiver: participant. rtpReceiver!, participantId: participant. identity, trackSid: publication. sid)
164+ if publication. track? . rtpReceiver == nil {
165+ self . log ( " E2EEManager::RoomDelegate: publication.track?.rtpReceiver is nil, skip to create FrameCryptor! " )
166+ return
167+ }
168+ let fc = addRtpReceiver ( receiver: publication. track!. rtpReceiver!, participantId: participant. identity, trackSid: publication. sid)
154169 trackPublications [ fc] = publication
155170 }
156171
0 commit comments