crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

mezmay
  опции профиля:
сообщение 22.3.2011, 14:07
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Описываю медиа-объект:
Phonon::MediaObject    *m_pLevelSound;    //Обект для проигрывания звука уровня


Инициализирую вот так:
m_pLevelSound = new Phonon::MediaObject(this);
Phonon::AudioOutput *audioOutput2 = new Phonon::AudioOutput(Phonon::MusicCategory, this);
Phonon::createPath(m_pLevelSound, audioOutput2);


По нажатию на кнопку делаю:
 
m_pLevelSound->setCurrentSource(Phonon::MediaSource(QString::fromLocal8Bit("/music/noise.wav")));
m_pLevelSound->play();


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

p.s. все это на windows mobile 6.1 professional. Qt 4.6.1

Сообщение отредактировал mezmay - 22.3.2011, 14:08
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
mezmay
  опции профиля:
сообщение 23.3.2011, 11:42
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


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

Инициализация медиа-объектов:
    m_pSound = new Phonon::MediaObject(this);
    Phonon::AudioOutput *audioOutput1 = new Phonon::AudioOutput(Phonon::MusicCategory, this);
    Phonon::createPath(m_pSound, audioOutput1);
    
    m_pLevelSound = new Phonon::MediaObject(this);
    Phonon::AudioOutput *audioOutput2 = new Phonon::AudioOutput(Phonon::MusicCategory, this);
    Phonon::createPath(m_pLevelSound, audioOutput2);


В функции обнаружения метки звук прогирывается так:
                    if(m_pSound->state() != Phonon::PlayingState)
                    {
                        m_pSound->setCurrentSource(Phonon::MediaSource("/music/tada.wav"));
                        m_pSound->play();
                    }


По нажатию на кнопку:
    m_pLevelSound->setCurrentSource(Phonon::MediaSource("/music/noise.wav"));
    m_pLevelSound->play();


В таком состоянии звук первые пару минут прогрывается как надо (в том числе и одновременно, если совпадают нажатие и обнаружение), а потом перестают проигрываться и тот и другой...
Но если закомментировать прогрывание звука в функции обнаружения
                    if(m_pSound->state() != Phonon::PlayingState)
                    {
                        //m_pSound->setCurrentSource(Phonon::MediaSource("/music/tada.wav"));
                        //m_pSound->play();
                    }

то по нажатию на кнопку звук будет стабильно проигрываться всегда.
Выводы: одно из двух)):
1. Я неправильно работаю с медиа-объектами (в чем ошибка?)
2. Глючит Phonon...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 3.6.2025, 13:29