Cordova-plugin-iosrtc: [Announcement] cordova-plugin-iosrtc Version 5.0.4 notes

Created on 4 Oct 2019  路  1Comment  路  Source: cordova-rtc/cordova-plugin-iosrtc

Hello cordova-rtc users,

I have released cordova-plugin-iosrtc 5.0.4

Changelog Version 5.0.4

  • Fix MediaStream.create false positive "ERROR: video track not added" and "ERROR: audio track not added" cause the rtcMediaStream already has them internaly trigger by getUserMedia.
  • Detect deprecated callbacks usage and throw Error instead of been silent to assist 5.0.1 to 5.0.2 migration from WebRTC callback RTCPeerConnection.(createOffer|createAnswer|setLocalDescription|setRemoteDescription|addIceCandidate|getStats) and getUserMedia API.
  • Reset enumerateDevices videoinput order with front camera first to keep legacy behavior.
  • Use safeAreaLayoutGuide for ios 11 and NSLayoutConstraint for ios 10 to fix elementView bad position depending status bar visibility (PR #367 by @hthetiot).
  • Recognize when a video receives a new srcObject and re-render it (PR #367 by @SejH).

Full changelogs: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-504

NPM: https://www.npmjs.com/package/cordova-plugin-iosrtc
GitHub Tag: https://github.com/cordova-rtc/cordova-plugin-iosrtc/tree/5.0.4

To upgrade

cordova plugin remove cordova-plugin-iosrtc
cordova plugin add [email protected]
cordova platform remove ios
cordova platform add ios

Note: you need to remove and add ios platform to trigger the hook or follow manual instructions here: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/docs/Building.md#xcode

Notes

About enumerateDevices videoinput order

I have restored enumerateDevices videoinput order from 5.0.0 with front camera being on the first videoinput entry of the array as part of 5.0.4. But developer need to sort/filter the array if you want to handle the enumerateDevices to be future proof and cross platform as there is no WebRTC spec that stipulate order of enumerateDevices result (Example: Firefox android does not return front as first entry but back instead).

Note: I will add MediaDeviceInfo.getCapabilities support in the future 5.x.x and navigator.mediaDevices.getSupportedConstraints support instead to properly handle facingMode (https://www.w3.org/TR/mediacapture-streams/#dom-inputdeviceinfo-getcapabilities, https://www.w3.org/TR/mediacapture-streams/#media-track-supported-constraints)

For more details see this comment: https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/392#issuecomment-536497520
See getUserMedia video constraints improvements dedicated PR: https://github.com/cordova-rtc/cordova-plugin-iosrtc/pull/384

About deprecated WebRTC Callback API

Yes we deprecated WebRTC callbacks support in favor of Promise only in 5.0.2 this have caused some issues for old WebRTC third party libraries. But one day or another Chrome will also remove it and it was part of original maintainer TODO list. I have added deprecated callbacks detection usage and throw Error with information instead of beeing silent to assist 5.0.1 to 5.0.2+ migration from WebRTC callback RTCPeerConnection and getUserMedia.

For more details see this comment: https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/397#issuecomment-538157419

About iOS 13+ support

Version 5.0.4 still have possible issue with rendering video. I'm working on an libwebrtc upgrade that the community have confirmed does fix the issue.

The fix for iOS 13+ as been confirmed and will be part of release 5.1.0 and can be tested today via the PR instructions: https://github.com/cordova-rtc/cordova-plugin-iosrtc/pull/385

Dedicated issue: https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/375

About libwebrtc update

Yes we all want iosrtc to use latest libwebrtc, as part of iOS 13 support I have upgraded to M54 succesfully but more work is still needed to support rtcDTMFSender before release on 5.1.0.

The M54 libwebrtc build can be tested today via the PR instructions: https://github.com/cordova-rtc/cordova-plugin-iosrtc/pull/385

As part of 5.1.0 release and this PR will also introduce MediaStreamRenderer capture, requestPermission, turnOnSpeaker and possibly selectAudioOutput that the community have requested since a long time.

As part of version 6.0.x I will upgrade to WebRTC.framework and libwebrtc version M69, this will be a separate PR, there is lot of work to be done to upgrade to M69 and beyond.

Dedicated issue: https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/249

Others

  • Please do not comment on an open or closed issue out of topic problems, you will annoy me and the original reporter and confuse the resolution of the issue, this not the right way to get help. Instead create a new issue and I will help you as I have proven past weeks.

  • No we have no plan to support capacitor, if capacitor want to support cordova plugin they have to do it the right way, PR are welcome anyway.

bug documentation enhancement libwebrtc question webrtc-api

Most helpful comment

Special thank to following community members for their help:
@saghul @CSantosM @EternallLight @myhhx @partnerparticle @SejH @rec0pt

Special thank to @OpenVidu and @Sylaps companies to allow their employees to contribute back to this open-source project. We hope to see more organization join this project. You can learn more about them here: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/WHO_USES_IT.md#who-uses-it

Happy RTC.

>All comments

Special thank to following community members for their help:
@saghul @CSantosM @EternallLight @myhhx @partnerparticle @SejH @rec0pt

Special thank to @OpenVidu and @Sylaps companies to allow their employees to contribute back to this open-source project. We hope to see more organization join this project. You can learn more about them here: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/WHO_USES_IT.md#who-uses-it

Happy RTC.

Was this page helpful?
0 / 5 - 0 ratings