Russian Qt Forum
Ноябрь 01, 2024, 11:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Phonon + QAnimation  (Прочитано 2451 раз)
cefire
Гость
« : Ноябрь 03, 2012, 15:44 »

Доброго времени суток!
Я наконец-то собрал статически Phonon. У меня такая проблема:
При клике на кнопку должно плавно появиться окно (Через QAnimation  за 500 мс)
В это же время должен проиграть звук.

Без звука всё работает идеально, но со звуком анимация начинает притормаживать!
Пробовал звук запускать в другом потоке, ничего не изменилось.
Может, кто сталкивался с такой проблемой?
Заранее спасибо.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #1 : Ноябрь 05, 2012, 10:53 »

Дай сорцы. Телепатический шлем сломался (
Записан

Гугль в помощь
cefire
Гость
« Ответ #2 : Ноябрь 05, 2012, 11:16 »

Всё, разобрался! Поток не правильно создавал.
Сейчас всё норм.
Код:
#include "music.h"
#include <phonon/audiooutput.h>
#include <phonon/private/factory_p.h>
#include <QtPlugin>

using namespace Phonon;
Music::Music(QObject *parent) :
    QThread(parent)
{
}
void Music::PlayOpen(){
    player->setCurrentSource(*open);
    player->play();
}
void Music::mOpen(){
    emit pOpen();
}
void Music::mClose(){
    emit pClose();
}

void Music::PlayClose(){
    player->setCurrentSource(*close);
    player->play();
}
void Music::init(){
    player = new MediaObject;
    player->setTransitionTime(1);
    out = new AudioOutput(NotificationCategory,0);
    createPath(player, out);
    out->setVolume(0.5);
    open=new MediaSource("sound/open.mp3");
    close=new MediaSource("sound/close.mp3");
    connect(player,SIGNAL(finished()),player,SLOT(stop()));
    connect(this,SIGNAL(pOpen()),this,SLOT(PlayOpen()));
    connect(this,SIGNAL(pClose()),this,SLOT(PlayClose()));
}

void Music::run(){
    Q_IMPORT_PLUGIN(phonon_ds9)
    Factory::setBackend(qt_plugin_instance_phonon_ds9());
    qRegisterMetaType<State>();
    qRegisterMetaType<MediaSource>("MediaSource");
    init();
    exec();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.257 секунд. Запросов: 23.