Which browsers does the Agora Web SDK support?
This page only applies to the Agora Web SDK 3.x. If you use the Web SDK 4.x, see Web SDK Compatibility.
Supported browsers
The section lists the browsers that the Agora RTC Web SDK supports on different platforms.
To ensure better end user experience, Agora highly recommends using the latest version of Google Chrome on desktop.
Upgrade to the latest version of the Web SDK in the following scenarios:
Desktop
See the following table for the supported browsers on desktop:
Platform | Google Chrome 58 or later | Firefox 56 or later | Safari 11 or later | Opera 45 or later | QQ Browser 10.5 or later | 360 Secure Browser | Edge Browser 80 or later |
---|---|---|---|---|---|---|---|
macOS 10+ | ✔ | ✔ | ✔ | ✔ | ✔ | ✘ | ✘ |
Windows 7+ | ✔ | ✔ | N/A | ✔ | ✔ | ✔ | ✔ |
Other browser support on desktop:
- The Web SDK v2.5 or later supports Google Chrome 49 on Windows XP. However, in this case, it supports VP8 only, and cannot interoperate with the Native SDK.
- The Web SDK theoretically supports 360 Extreme Browser, but we do not guarantee full support.
Mobile
The browser support on mobile devices heavily depends on the capabilities of devices and the codec implementation of browsers.
- On Android 4.1 or later, the Web SDK supports Chrome 58 or later. Agora recommends using VP8 on Android Chrome, because whether Google Chrome for Android supports H.264 is hardware dependent and some Android devices do not support H.264.
- On iOS 11 or later, the Web SDK supports Safari or later. However, Agora does not recommend using the Web SDK on iOS Safari due to the large amount of known issues and limitations of iOS Safari. For better user experience on iOS, try the Agora RTC iOS SDK.
The support for in-app browsers on mobile devices is complicated. For details, see Supported Platforms.
Limitation
Due to the various browser engine implementations, support for some features may vary by browser and platform. The following are known issues and limitations.
On Chrome 81 or later, Safari, and Firefox, device IDs are only available after the user has granted permissions to use the media device. See Why can't I get device ID on Chrome 81?
Chrome
The Agora Web SDK is based on WebRTC and works best on Chrome.
- The Agora Web SDK supports Chrome 58 or later.
- On some Android devices, Chrome does not support the H.264 codec.
- Some APIs require later versions of Chrome, see the API Reference for details.
- On all AMD-based and some Intel-based devices with the Windows operating system, if Chrome uses the H.264 codec, the video transmission bitrate may be lower than the set value. To resolve it, you can set the browser to use the VP8 codec or try to disable hardware acceleration.
- Chrome 84 on macOS has a known issue: When using the H.264 codec, WebRTC has the probability of a sudden drop in the framerate. For details, see the official bug reports of Google: Issue 1088650 and Issue 12704. Agora recommends using VP8 other than H.264 for Chrome 84 and later versions on macOS.
Safari
Known issues and limitations of Safari on iOS:
- The audio routing may change randomly: Sometimes, the audio is routed to the speakerphone when a headset is connected, or to the earpiece when no headset is connected.
- The volume of a remote user may change randomly on iOS 13.
- Safari does not support the
getAudioLevel
method on iOS. - If you call
getUserMedia
twice to get two tracks of the same media type, the first track goes muted or black. - On iOS Safari, after an audience member switches the role to
"host"
and gets the microphone permission, the remote user's volume lowers significantly. - Occasional: On iOS 13, after a user switches to other apps that use the microphone or camera (such as Siri or Skype) and then switches back, the audio sampling or video capture fails.
- Occasional: After the audio session is interrupted, for example, the local user mutes or unmutes the audio, uses Siri, or answers an incoming call, the user can no longer hear any remote users.
Other issues
The following lists other known issues and limitations of Safari on iOS and macOS:
- Safari 11 only supports the video resolution of 480P and higher.
- Safari 12.1 or earlier only supports the H.264 codec.
- On Safari 13, users may not be able to hear other users.
- On iOS Safari 14.2 and macOS Safari 14.0.1, the audio may be stuttering.
- Device permission limitations:
- Safari does not support getting the output device information, so it does not support the
getPlayoutDevices
andsetAudioOutput
methods. - If Auto-Play is not enabled on Safari (as the following figure shows), the stream playback has no audio. You have to call the
navigator.mediaDevices.getUserMedia
method to get the device permissions before playing a stream.
- Safari does not support getting the output device information, so it does not support the
- Safari does not support the
addTrack
andremoveTrack
methods. - Safari does not support enabling dual-stream mode.
- On Safari, when calling APIs to get quality statistics, the values of some properties are 0. For example, when calling
getLocalAudioStats
to get the audio statistics of the local stream, the values ofRecordingLevel
andSendLevel
are 0.
Firefox
- When the Web SDK on Firefox communicates with the SDK on some devices, the video on Firefox is rotated.
- Firefox does not support changing the frame rate (30 fps by default).
- Setting the video profile on Firefox does not take effect on the following devices:
- MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)
- Windows 10 (MI)
- On Firefox, when calling APIs to get quality statistics, the values of some properties are 0. For example, when calling
getLocalAudioStats
to get the audio statistics of the local stream, the values ofRecordingLevel
andSendLevel
are 0. - On Macs with the Apple M1 chip, Firefox does not support H.264. For details, see the Firefox documentation.