Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485

QSoundEffect не воспроизводит звук

25.12.2015, 10:09. Показов 4263. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
QSound::play(":/sound/01.wav"); 
// работает
 
QSound::play(":/sound/02.wav"); 
// работает
 
QSoundEffect sound;
sound.setSource(QUrl(":/sound/01.wav")); // QUrl(":/sound/02.wav")
sound.setVolume(1.f);
sound.play();
// не работает
 
QSoundEffect sound;
sound.setSource(QUrl("qrc:/sound/01.wav")); // ...
sound.setVolume(1.f);
sound.play();
// не работает
 
QSoundEffect sound;
sound.setSource(QUrl::fromLocalFile(":/sound/01.wav"));
sound.setVolume(1.f);
sound.play();
// не работает
 
QSoundEffect sound;
sound.setSource(QUrl::fromLocalFile("c:/qt-projects/project1/sound/01.wav"));
sound.setVolume(1.f);
sound.play();
// не работает
Что не так? :/

характеристики используемых файлов:
  1. Uncompressed WAV, mono, 22050 Hz
  2. Uncompressed WAV, stereo, 44100 Hz

p.s. в некоторых случаях проверял sound.status();: он был Ready, но звука не было
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2015, 10:09
Ответы с готовыми решениями:

Qt 5.5 не воспроизводит ни звук ни картинки
Сделала сборку при помощи утилиты windeployqt.exe На другом компе не идет музыка, картинки показываются мелкой иконкой. файлы и...

QSound - не воспроизводит звук
У меня появляется вот такая ошибка после запуска: Ubuntu: QSoundEffect(pulseaudio): Error decoding source Windows:...

QSound воспроизводит звук в цикле несмотря на условие
bool playSound = false while(...) { .... if(playSound) QSound::play("sound.wav"); .... } // пофиг,...

4
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
25.12.2015, 15:44
Лучший ответ Сообщение было отмечено WxMaper как решение

Решение

play() не блокирующий вызов. У вас объект sound удаляется раньше чем начинает что-то играть. Создавайте на куче.
1
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
26.12.2015, 10:38  [ТС]
Ок, с этим разобрался. Теперь другой вопрос: создал несколько экземпляров QSoundEffect, чтобы можно было воспроизводить несколько звуков одновременно, но с лимитом
C++ (Qt)
1
2
3
4
5
    m_effect1 = new QSoundEffect;
    m_effect2 = new QSoundEffect;
    m_effect3 = new QSoundEffect;
    m_effect4 = new QSoundEffect;
    m_effect5 = new QSoundEffect;
Воспроизвожу так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void QTDEngine::playSound(const QString &source, float volume)
{
    QSoundEffect *effect = 0;
 
    if(!m_effect1->isPlaying())
        effect = m_effect1;
    else if(!m_effect2->isPlaying())
        effect = m_effect2;
    else if(!m_effect3->isPlaying())
        effect = m_effect3;
    else if(!m_effect4->isPlaying())
        effect = m_effect4;
    else if(!m_effect5->isPlaying())
        effect = m_effect5;
 
    if(effect) {
        effect->setSource(QUrl(source));
        effect->setVolume(volume);
        effect->play();
    }
}
когда одновременно проигрываемых звуков становится больше трех-четырех, звук начинает рваться, обрываться, хрустеть, трещать и даже менять частоту (был хлопок, стал писк), как можно исправить это?

п.с. это для игры: есть несколько пушек, они стреляют - звук выстрела, снаряды взрываются - звук взрыва и т.д. иногда, разумеется, несколько звуков должны проиграть одновременно.

Добавлено через 44 минуты
Вопрос отпал заменил QSoundEffect на QMediaPlayer
0
 Аватар для RazrFalcon
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
26.12.2015, 10:54
QMediaPlayer для другого сделан, вам именно QSoundEffect нужен.

Since QSoundEffect requires slightly more resources to achieve lower latency playback, the platform may limit the number of simultaneously playing sound effects.
Почему тупит - хз. Попробуйте не грузить звуки каждый раз, а только запускать их.
0
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
26.12.2015, 14:14  [ТС]
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Попробуйте не грузить звуки каждый раз, а только запускать их.
Так их много, для каждого экземпляр создавать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2015, 14:14
Помогаю со студенческими работами здесь

Не воспроизводит звук
Помогите пожалуйста настроить воспроизведение звука через 2 кнопки. Музыка включается при нажатие на кнопку включения звука...

Не воспроизводит звук
У меня медиа звук не воспроизводит. Пишет типа нет звукового оборудования или оно работает не правельно, или используется другой...

не воспроизводит звук winapi
здравствуйте. у меня такая проблема: подключаю библиотеки #include<mmsystem.h> #pragma comment(lib,"winmm.lib") ...

Windows 7 не воспроизводит звук!
Всем привет! Неохото просматривать 133 страницы с темами, поэтому создал эту темку :pardon: Дело вот в чем: Поставил я (наконец-то)...

PlaySound не воспроизводит звук
Есть код: (visual studio 2013) #include <windows.h> #include <mmsystem.h> #pragma...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru