Revision control

Copy as Markdown

// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page qtmultimedia-apple.html
\title Qt Multimedia on macOS and iOS
\brief Platform notes for iOS
This page covers the availability of Qt Multimedia features on iOS and macOS.
\section1 Limitations
Since Qt Multimedia for iOS uses the camera and microphone, the \c Info.plist
assigned to QMAKE_INFO_PLIST in the project file must contain the keys
\c NSCameraUsageDescription and \c NSMicrophoneUsageDescription. Otherwise, the
application will abort on startup. See \l{Info.plist} documentation from Apple
for more information regarding this key.
\section1 Shared AVAudioSession on iOS
On the iOS family, Qt Multimedia activates the single, process-wide shared
{AVAudioSession} for audio input and output. Since this session is shared by the
whole application, other code that also configures or activates \c AVAudioSession
may interfere with Qt Multimedia's session configuration, and Qt Multimedia's
configuration may equally interfere with that other code.
\section1 Use of FFmpeg libraries on iOS
FFmpeg binaries from the online installer must be embedded into the application's
bundle. To embed these libraries, you can add the \l qt_add_ios_ffmpeg_libraries()
command to the app's CMakeLists.txt file:
\code
qt_add_ios_ffmpeg_libraries(mytarget)
\endcode
\sa qt_add_ios_ffmpeg_libraries()
When using QMake, add the following to your \c{.pro} file:
\code
CONFIG += add_ios_ffmpeg_libraries
\endcode
\note The FFmpeg binaries from the online installer are built for arm64 and x86_64-simulator to ensure they
pass validation with Apple Store Connect and can be used when running the iOS simulator.
\note A limitation in Qt Multimedia builds that include FFmpeg support,
is that FFmpeg libraries must be provided at link-time when building
iOS applications. Failing to do so will result in linker errors. This
includes the Qt Multimedia builds supplied by Qt Maintenance Tool.
Applications that use such builds are required to call
\l qt_add_ios_ffmpeg_libraries(), or otherwise link their own FFmpeg
libraries. As a consequence, application developers that wish to
deploy iOS applications without FFmpeg, must build their own build
of Qt Multimedia without FFmpeg support.
*/