diff --git a/lib/src/rtc_rtp_parameters_impl.dart b/lib/src/rtc_rtp_parameters_impl.dart index 62115f8..94405b5 100644 --- a/lib/src/rtc_rtp_parameters_impl.dart +++ b/lib/src/rtc_rtp_parameters_impl.dart @@ -5,15 +5,19 @@ class RTCRtpParametersWeb { static RTCRtpParameters fromJsObject(Object object) { return RTCRtpParameters( transactionId: jsutil.getProperty(object, 'transactionId'), - rtcp: RTCRTCPParametersWeb.fromJsObject( - jsutil.getProperty(object, 'rtcp')), + rtcp: jsutil.hasProperty(object, 'transactionId') + ? RTCRTCPParametersWeb.fromJsObject( + jsutil.getProperty(object, 'rtcp')) + : null, headerExtensions: headerExtensionsFromJsObject(object), encodings: encodingsFromJsObject(object), codecs: codecsFromJsObject(object)); } static List headerExtensionsFromJsObject(Object object) { - var headerExtensions = jsutil.getProperty(object, 'headerExtensions'); + var headerExtensions = jsutil.hasProperty(object, 'headerExtensions') + ? jsutil.getProperty(object, 'headerExtensions') + : []; var list = []; headerExtensions.forEach((e) { list.add(RTCHeaderExtensionWeb.fromJsObject(e)); @@ -22,7 +26,9 @@ class RTCRtpParametersWeb { } static List encodingsFromJsObject(Object object) { - var encodings = jsutil.getProperty(object, 'encodings'); + var encodings = jsutil.hasProperty(object, 'encodings') + ? jsutil.getProperty(object, 'encodings') + : []; var list = []; encodings.forEach((e) { list.add(RTCRtpEncodingWeb.fromJsObject(e)); @@ -31,7 +37,9 @@ class RTCRtpParametersWeb { } static List codecsFromJsObject(Object object) { - var encodings = jsutil.getProperty(object, 'codecs'); + var encodings = jsutil.hasProperty(object, 'codecs') + ? jsutil.getProperty(object, 'codecs') + : []; var list = []; encodings.forEach((e) { list.add(RTCRTPCodecWeb.fromJsObject(e));