Версия QT: QT5.12
Операционная система: Ubuntu18.04, Windows10.
Чтобы использовать классы QT, связанные со звуком, вам необходимо добавить: QT += multimedia в файл проекта QT pro.
2.1 Статический метод игры: Этот метод создаст подпоток для воспроизведения в фоновом режиме. Его лучше вызывать в основном потоке. При вызове этой функции в подпотоке для воспроизведения аудиофайла будет выдано предупреждение: 。QObject: Cannot create children for a parent that is in a different thread. (Parent is QApplication(0x7ffc5e9f21f0), parent's thread is QThread(0x55ddf74113e0), current thread is QThread(0x7ffc5ebb6588)
#include <QSound>
//Путь к файлу может быть путем к файлу ресурсов или путем к локальной файловой системе
QSound::play("/mnt/hgfs/linux-share-dir/666.wav");
2.2 Загрузка файлов для воспроизведения
#include <QSound>
QSound *bells =new QSound("/mnt/hgfs/linux-share-dir/666.wav");
bells->play();
#include <QSoundEffect>
QSoundEffect *effect=new QSoundEffect;
effect->setSource(QUrl::fromLocalFile("/mnt/hgfs/linux-share-dir/666.wav"));
effect->setLoopCount(1); //Количество циклов
effect->setVolume(0.25f); //объем Между 0~1
effect->play();
4.1 Воспроизведение аудиофайлов формата wav
#include <QMediaPlayer>
QMediaPlayer *player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("/mnt/hgfs/linux-share-dir/666.wav"));
player->setVolume(50); //диапазон громкости 0~100, по умолчанию 100
player->play();
4.2 Воспроизведение аудиофайлов формата mp3
#include <QMediaPlayer>
QMediaPlayer *player = new QMediaPlayer;
//Подсказка о ходе воспроизведения
connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
player->setMedia(QUrl::fromLocalFile("/mnt/hgfs/linux-share-dir/xiaotiaowa.mp3"));
player->setVolume(50); //диапазон громкости 0~100, по умолчанию 100
player->play();