On this page

Qt Multimedia on WebAssembly

This page covers the availability of Qt Multimedia features on WebAssembly.

Limitations

  • Due to its asynchronous nature, some features such as getting a list of QMediaDevices may not be readily available and may take some time to request permissions and gather the list of devices. With Asyncify/JSPI enabled, device enumeration happens synchronously. Otherwise use the audioInputsChanged, audioOutputsChanged, and videoInputsChanged signals to react when devices become available.
  • Camera and Microphone inputs require user permissions, and can only be used in a secure https context. Firefox may require permission to play video and audio.
  • Using and selecting different Codecs/video formats is not currently supported. These in the browser are more like suggestions or a request, and may not return the selected codec.
  • Playing data from a QIODevice (using setSourceDevice(QIODevice*)): is partially supported for video (entire stream (file) is read into memory at once). Not supported for audio. Streaming from a web URL works. Real-time data input streaming is not supported.
  • Some advanced features such as spatial 3D audio and (Audio/Video)codecs are not currently supported.
  • Files can be served from the/any web server, respective of CORS.
  • Although possible, playing large files stored in the application file system or in a resource package are discouraged because of the limited size of the browser's file storage and memory constraints.
  • Issues may exist when using the Firefox browser on any platform.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.