- Deprecated Unity 2018 LTS support. Lowest version is now Unity 2019 LTS for Unity examples. The C# API itself should continue to work with older Unity versions
- Mac: Update to MacOSX SDK 12.3
- iOS: Update to iOS SDK 15.5
- Windows: Switched to Visual Studio Clang build pipeline for x86 and x64 builds. This might change some performance characteristics.
- Android : Update to NDK 23 and SDK API 31
- Android: Updated AndroidManifest.xml & build pipeline to work with latest Android versions without generating warnings
- Android: Due to a security issue in older WebRTC versions the play store with show a warning using the older versions. Please update as soon as possible.
- Native: Updated native WebRTC library to WebRTC104.
- Native: Native log level is now correctly set if the asset runs in the Unity Editor
- Native: Fixed flag MAINTAIN_RESOLUTION in UnityCallFactory. Setting this to true should stop automatic downscaling on all native platforms by setting the content hint to Detail
- Native: The VideoInput API can now force & change resolutions on the fly via the UpdateFrame method. This can be used to dynamically scale down the video to reduce memory and CPU usage. The Width/Height values in MediaConfig are ignored.
- Native: The VideoInput API should now support a wider range of framerates and allow changing framerates on the fly
- Native: Added CommonNetworkConfig.PeerConnectionTimeout. This value allows setting a timeout for establishing the direct peer to peer connection
- WebGL: TextureFrame and FrameProcessor have been updated to reduce the risk of memory leaks if a frame is not used e.g. due to Exceptions in user code. IFrame.Dispose must still be called though!
- WebGL: updated third party dependencies
- WebGL: Using the webrtc-adapter to help with cross browser compatibility can now be deactivated.
- UnityCallFactory will now warn and automatically set Application.runInBackground=true if not done so by the app developer
- Examples: Signaling & TURN server urls have been updated
- CallApp: CallApp will now always use secure websockets by default
- CallApp: The app now uses the new FrameProcessor to convert platform specific formats into Unity Texture2D. Using I420p can reduced CPU overhead by moving some conversion to the GPU.
- New MediaConfig default values: sending Video and Audio is now off by default
- Improved logging. ICall/IMediaNetwork and peers now have a global ID to allow associating log messages with individual instances. Log messages are prefixed with “awrtc:”
- log level can now be set via SetLogLevel/SetNativeLogLevel
- Fixed misleading warning log & issue with dropping signaling messages that arrive after a call already successfully connects
- Removed various obsolete classes & method
- Improved error messages given by UnityCallFactory & websockets
- Removed .NET 3.5 backwards compatibility
- Added NetworkConfig.KeepSignalingAlive to keep the signaling connection active
- KeepSignalingAlive and IsConference=true now allows custom server side code to start & shutdown client side peers by connecting/disconnecting a signaling connection.
- ConnectionId’s for signaling and MediaNetwork connectionIds are the same now
- VideoInput: Shared API added for all supported platforms including WebGL
- VideoInput: Added information for use with HDR
- Native: CommonNetworkConfig can now be used to create Calls/MediaNetwork instances with custom signaling network / custom websocket timeouts
- Native: Several old create methods removed from the factory classes. Use the create methods that get NetworkConfig as argument instead.
- Native: Added codec settings in NativeMediaConfig(experimental) to priotize codecs or change other codec specific settings
- Native: NativeMediaConfig.AudioAccess (experimental): Can be used to request emiting AudioFrame events with raw PCM for each incoming connection
- Native: Proxy support added (experimental)
- WebGL: Added support for Screen Capture API. Enabled via Unity_Media_EnableScreenCapture(“Screen capture”)
- WebGL: Fixed memory leak if multiple streams are active in parallel that use the “Native” pixel format.
- WebGL: updated npm dependencies
- Android x64 support added
- Android: Removed all WebCamTexture references to ensure Unity does not automatically add the Camera permission if it is removed from the AndroidManifest.xml
- Android: Fixed a bug causing log message to be truncated
- Android: added proguard-user.txt with rules to ensure proguard doesn’t strip required java components
- iOS: Added workaround for hardware decoding issues with resolutions greater than 720p
- awrtc_borwser (experimental): Added an alternative peer configuration enabled via SINGLE_NEGOTIATION=true. It will allow setting up the peer for video & audio but allows enabling/disabling these without renegotiation
- ConferenceApp: Added randomly generated usernames to show how ICall.Send can be used to tell different users apart and keep a reference between username & ConnectionId
- Ice Restart (experimental) NetworkConfig.MaxIceRestart can be set to allow several reconnection attempts before a connection is treated as disconnected.
- Reconfigure (experimental): ICall/IMediaNetwork.Configure can now be called at run-time to change settings without reconnecting. This requires an active signaling connection (KeepSignalingAlive=true).
The version on the asset store has been updated to V0.9854. If you want to use WebRTC Video Chat with Unity 2021.2 make sure to update the asset to the latest version!
Note from now on the old iOS arm 32 bit devices are no longer supported (iPhone 5C and below) and iOS 12 or higher is required.
See Changelog for details.
V0.985 is now available in the asset store. See Changelog for details.
Update: This is now part of the latest asset store release and no manual changes are needed.
There is a new issue for iOS 14 under following conditions:
- Your app is designed for iOS & distributed publicly
- Your app is sending audio (accessing the microphone)
- Your app will stop calls during its lifetime but continue running for a longer time
In this case iOS might continue showing the microphone indicator light. This is due to an earlier iOS 13 hotfix to workaround a bug with older Unity versions that could cause a crash or audio to stop working if the audio layer is being shut down. By now the latest Unity 2018 LTS & Unity 2019 LTS version do not have this issue anymore.
You can deactivate the workaround by editing the UnityCallFactory.cs and replace the line
All future versions of the asset will contain this as well.
V0.9845 is now available in the asset store containing several bugfixes.
- Unity 2018.4.22f1
- WebGL: fix for Chrome 81 issues. Chrome 81 returns an invalid device ID if the user didn’t allow camera access yet. This could result in an overconstrained error
- WebGL: fixed issue that could cause some users not to disconnect correctly for conference calls
- Native: fixed an issue that can cause a connection to fail randomly even on a stable network
- Android: fixed an issue that could cause a crash randomly if the call is shutting down while the local camera was active
- Android: fixed an issue that could cause a delay in remote video playback
- iOS: Improved build pipeline to better support several Unity versions & better error messages
- Mac: signed & notarised + updated Info.plist for app store releases
- Cleanup log output
- Example apps are updated to use EnsureInit to allow them to run in WebGL without changes
- CallApp: the app will now keep the chat panel open if the call ends
- CallApp: fixed an issue that could make it difficult to shut down the app if the rejoin option is active & the system is offline
This fixes the following issues:
- Issues with camera access in Chrome 81. Chrome won’t return a list of video devices anymore until the user allows Camera access first. The list of video devices will now be available after the first call to ICall.Configure or IMediaNetwork.Configure and after the user pressed “Allow”
- Fix for some connections failing even with a stable network
- Android video delay issues on some devices
Download here Link removed. Please use the latest release from the asset store
Note that this is a nightly build and the mac version isn’t signed / notarised yet. The complete V0.9845 update will be released in the next few days.
The asset store version has been updated to include a signed and notarised version of the MacOS plugin. The asset should now load without warning in the newest Mac OS versions no matter how GateKeeper is configured.
The asset version has been updated to V0.9843. This version contains a rebuilt WebRTC binary for the windows 32 bit version . An apparent compiler bug could cause crashes during encoding of video frames in VP8 if the CPU supported AVX. Win 64 bit and other platforms were not effected.
As there were no other changes the returned version by the asset remains at V0.9841.
V0.9842 has been released with a hotfix for iOS13.
In iOS 13 the local video can fail to show up / being sent. The new iOS version changed the video format by adding a padding at the end of each row of pixels causing a 1280×720 image to be 1280×768 in memory. The new hotfix will remove this padding and make sure the C# side remains compatible to all earlier versions.
You can already get the new version in the Download Area while the asset store release is waiting for approval from Unity.
Update: The hotfix has now arrived in the asset store. Note that the unity asset version will be “V0.9842” but the log output will still return “V0.9841”