Запуск файлов один за другим |
Здравствуйте, гость ( Вход | Регистрация )
Запуск файлов один за другим |
frefik |
30.5.2011, 11:28
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 30.5.2011 Пользователь №: 2706 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем привет. Существует следующая таблица.
Задача запускать файлы поочередно из таблицы и завершать их основываясь на их продолжительности. Проблема не в qprocess, qtime, qtimer или qtreewidget. Я не могу понять как это организовать. |
|
|
maint |
30.5.2011, 12:19
Сообщение
#2
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
Всем привет. Существует следующая таблица. Задача запускать файлы поочередно из таблицы и завершать их основываясь на их продолжительности. Проблема не в qprocess, qtime, qtimer или qtreewidget. Я не могу понять как это организовать. непонятно что за таблица QTableView или чего. Модель чего ? Базы или список сформированный ? А так, берем текущую позицию, считываем поля, запускаем отдельный поток на проигрывание. Когда он закончится и пеcне конец. Если нажать "СТОП" (вроде есть), то завершаем принудительно. |
|
|
frefik |
30.5.2011, 12:26
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 30.5.2011 Пользователь №: 2706 Спасибо сказали: 0 раз(а) Репутация: 0 |
QTreeWidget. Можно подробнее, очень надо. Как считывать понятно. На счет потока не понятно, надо что бы сразу же после конца песни запускалась другая.
|
|
|
RazrFalcon |
30.5.2011, 12:48
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Проще всего: посмотреть чужие исходники. К примеру SMPlayer.
А вообще, берем все время трека, затем каждую секунду, к примеру, смотрим текущее положение (если это возможно), и сравниваем. Также, можно написать сигнал, который будет реагировать на окончание трека. Вы вообще что используете для воспроизведения? |
|
|
frefik |
30.5.2011, 13:02
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 30.5.2011 Пользователь №: 2706 Спасибо сказали: 0 раз(а) Репутация: 0 |
Дело в том что программа запускает файлы, с помощью программ которые ассоциированные с ними.
алгоритм следующий: 1.процесс запустить(имя программы, файл...) 2. отсчет времени(time.start()) 3. проверка, если переменная time приравнивается продолжительности файла, то завершить и подать на обработку следующий файл. Я впал в какую-то рекурсию, могу представить как проделать это с одним файлом, но как сделать поочередно с файлами. Пожалуйста отпишитесь. |
|
|
RazrFalcon |
30.5.2011, 13:09
Сообщение
#6
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
То есть Вы через QProcess стартуете?
Прога сама завершается или вы ее сами закрываете? Так как можно было просто поставить waitForFinished(), который, к слову, поддерживает задание времени. Так что можно и от сюда плясать. Так же можно сделать kill() процессу, через нужное время. Но это убивает прокрутку и паузы. |
|
|
frefik |
30.5.2011, 13:25
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 30.5.2011 Пользователь №: 2706 Спасибо сказали: 0 раз(а) Репутация: 0 |
Да.
Можете привести пример пожалуйста. Грубо говоря задача следующая: файл video1.avi, продолжительность 10 минут файл video2.avi, продолжительность 5 минут файл video3.avi, продолжительность 34 минут Задача поочередно файлы, проиграть программой по-умолчанию. Не просто запустить, а запустить первый подождать(как?) 10 минут, завершить первый, запустить второй и.т.д. Мне бы пример. Как бы вы её реализовали? |
|
|
RazrFalcon |
30.5.2011, 13:47
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Сообщение отредактировал RazrFalcon - 30.5.2011, 13:48 |
|
|
Litkevich Yuriy |
30.5.2011, 18:30
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
RazrFalcon, а события GUI (например, таскание окошка) когда обрабатывать будешь?
|
|
|
RazrFalcon |
30.5.2011, 18:35
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Можно во втором потоке запускать.
И да, я просто предложил. Все равно ТС нужно запускать приложения, а как это сделать без QProcess я не знаю. |
|
|
Текстовая версия | Сейчас: 3.1.2025, 10:58 |