crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Многопоточный звук
AzateQ
  опции профиля:
сообщение 14.6.2011, 17:26
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.4.2011
Пользователь №: 2605

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




Репутация:   0  


Необходимо подряд воспроизводить кучу маленьких звуковых файлов.
Для этого использовал QSound, но при последовательном воспроизведении ухо режет задержка, что не приемлимо.
Решил файлы через один запускать в 2-х потоках и используя msleep(msecs) воспроизводить их с наложением, так, чтобы задержка не чувствовалась, но оказалось, что QSound не поддерживает многопоточность, так что потоки работают подряд, а не параллельно, что равносильно одному потоку...
Как понял, мне необходимо юзать Phonon, но закапываться в документации у меня нет времени, может кто занимался чем-то подобным и сможет подсказать, как в реалиях Phonon'а перегрузить run() в классе моих потоков, наследуемом от QThread?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 14.6.2011, 17:49
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


А через QtConcurrent не пробовали?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AzateQ
  опции профиля:
сообщение 14.6.2011, 18:41
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 16.4.2011
Пользователь №: 2605

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




Репутация:   0  


Цитата(RazrFalcon @ 14.6.2011, 18:49) *
А через QtConcurrent не пробовали?

Бегло взглянул на него, сейчас попробую углубиться - может что и получится, хоть я и сильно в этом сомневаюсь - у меня практически нулевые знания, как о многопоточности, так и работе со звуком=)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 14.6.2011, 19:14
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Да там ничего сложного нет.

void MainWindow::startSound()
{
// сам запуск звука
}

// вызываем где нужно
QFuture<void> future = QtConcurrent::run(this, &MainWidow::startSound);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 19.4.2024, 23:53