Safari 11 has a mostly complete implementation of WebRTC, supporting getUserMedia (gUM) and PeerConnection. However, there are still parts of the WebRTC specification that are not supported.
- Only one tab at a time can have access to the camera;
If a second tab requests gUM, the original tab's video will be muted;
- No support for Screensharing;
- No support for audiooutput in getSources / enumerateDevices;
- No DTMFSender support;
- No RTCRecording support;
- getStats only supports its promise prototype;
- Limited statistics provided by getStats;
- No support for the VP8/VP9 video codec (H264 only);
- You need to have an active stream being sent through your PeerConnection for the DataChannel to work.
Our AJS 0.15.0 supports Safari 11 with both its native implementation, and with the plugin (mainly through webrtc-adapter update). AJS defaults to Safari 11's native WebRTC implementation which does not require the plugin to be installed.
However, you can set the flag
AdapterJS.options.forceSafariPlugin = true BEFORE injecting AJS to force the override of the native implementation with the Temasys plugin.
This will result in the same behaviour as seen for Safari 10 with the plugin implementation being used. If the plugin is not installed, the user will be prompted to download it.
You can find more about Safari 11's native implementation here.