How to get sound on iOS

From Qt Wiki
Revision as of 13:47, 21 July 2020 by Hitokage (talk | contribs) (Described my approach that was the only one that worked for me. Couldn't make the above example work.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

iOS Sound

To play a sound file on IOS platform you can't store it in the qrc file but you have to put it in the bundle together with the qml files. Here you can find my example that plays sound on IOS. The most important part is in the .pro file), where the qml and audio are put in the bundle:

DATA_FILES = $$PWD/qml/iosqt/main.qml ../iosqt/page.qml ../iosqt/audio.mp3 ios: {

 data.files = $$DATA_FILES
 data.path = Documents


obviously you have to include the plugin: QTPLUGIN *= qtaudio_coreaudio QTPLUGIN *= qtmedia_audioengine QTPLUGIN *= qavfcamera QTPLUGIN *= qavfmediaplayer

thus in main.qml: MediaPlayer {

 id: playMusic
 volume: 0.5
 source: "audio.mp3"


Alternate approach

Tested in 2020 and the above example was not working for me. Instead I made it work by these edits:

1) Included all content in my audio folder where I stored the sound files. The path attribute creates a new directory for your data. I haven't used it here keeping the bundled data in root.

ios: {
    BUNDLE_DATA.files = $$files($$PWD/audio/*.mp3)

2) Used the same plugin inclusions as above. 3) Had to locate the file in QML like this:

source: StandardPaths.locate(StandardPaths.AppDataLocation, "file.mp3", StandardPaths.LocateFile)

Providing the URL by Standard Paths made it possible for the Media Player to open the file. The file couldn't be found without this.