Как проверить, что звук Phonon уже играет?

Я относительно новичок в Qt, поэтому я объясню этот вопрос и то, что я надеюсь достичь как можно яснее.

В настоящее время у меня есть кнопки, которые при нажатии воспроизводят звуковой файл, расположенный в каталоге приложений.
Я провел небольшое исследование и обнаружил, что многие пользователи говорят, что использование Phonon лучше, чем QSound. Это приложение только для платформы Windows, поэтому ничего особенного не требуется.

Вот код, который я имею в mainwindow.cpp:

void MainWindow::on_obj_button_gandalf_clicked()
{
Phonon::MediaObject *music =
Phonon::createPlayer(Phonon::MusicCategory,Phonon::MediaSource("sound_file.mp3"));
music->play();
}

Звук играет отлично. Однако, если пользователю пришлось нажать кнопку второй раз, пока звук все еще воспроизводится с первого щелчка, он воспроизводится один над другим.

Есть ли какая-то функция isplaying () или что-то, чтобы определить, действительно ли воспроизводится тот же самый звук? Если это так, он не должен воспроизводить его снова, если нет, то должен воспроизводить песню в соответствии с запросом.

Я использую Qt 4.7.0 32bit

-2

Решение

Чтение документация, кажется, это так же просто, как звонить music->state() и … проверка состояния.

if (music->state() == Phonon::PlayingState) {
...

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]