Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
7 / 7 / 1
Регистрация: 21.03.2010
Сообщений: 397

Видеоплеер: покадровая прокрутка через Trackbar

12.06.2010, 17:42. Показов 4473. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать прокрутку видео по кадрам через ТрєкБар. Тоесть как связать медиаплеер с трэкбаром.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2010, 17:42
Ответы с готовыми решениями:

Прокрутка TrackBar колесом мыши
Доброго дня. Столкнулся с проблемой прокрутки. При клике на свою панель делаю TrackBar1->SetFocus(); и все работает как надо, но если...

Прокрутка TrackBar колесом мыши
Помогите разобраться с Trackbar. Создал я значит свой ползунок, сделал горизонтальное расположение и сразу столкнулся с проблемой....

Прокрутка TrackBar'a
У меня в программе имеется TrackBar. В свойствах: Max:1700, Min:50. Стоит прокрутка на колесо мыши+ctrl. Возможно сделать так, чтобы...

9
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
12.06.2010, 19:05
Tenass, возможно, так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MediaPlayer1->Open();
MediaPlayer1->Play();
TrackBar1->Max=MediaPlayer1->Length;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
MediaPlayer1->Position=TrackBar1->Position;
MediaPlayer1->Play();
}
//---------------------------------------------------------------------------
0
7 / 7 / 1
Регистрация: 21.03.2010
Сообщений: 397
13.06.2010, 21:18  [ТС]
Все работает отлично, только вот проблемка вышла, когда проигрывается клип, то ползунок трэкбара не двигается.

Добавлено через 11 часов 2 минуты
В каком именно событии нужно прописать данную строчку:
TrackBar2->Position = MediaPlayer1->Position;
Пробовал выставлять таймер и с ним связать, но тогда видео тормозит даже когда интервал таймера = 1

Добавлено через 9 часов 50 минут
Так что скажете !?!
Когда кидаю код:
TrackBar1->Position = MediaPlayer1->Position;
в таймер, так ползунок двигается, но видео начинает тормозить, а тормоза зависят от интервала таймера, так что от таймера пришлось отказаться, но где эта строчка будет работать нормально ?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
14.06.2010, 13:42
Tenass, понимаете, получается такая замкнутая ситуация:
При движении ScrollBar'а меняется номер кадра в MediaPlayer, при этом воспроизведение прекращается. Для это мы вновь запускаем его:

C++
1
2
MediaPlayer1->Position=TrackBar1->Position;
MediaPlayer1->Play(); << Вот здесь
А здесь:
C++
1
TrackBar2->Position = MediaPlayer1->Position;
Позиция TrackBar'а смещается, а при этом меняется кадр в MediaPlayer.
0
7 / 7 / 1
Регистрация: 21.03.2010
Сообщений: 397
14.06.2010, 14:55  [ТС]
Ничего не понял, причем здесь это.
Я писал, что тормозит плеер, когда я эту строчку: TrackBar2->Position = MediaPlayer1->Position; кидаю в таймер. Но ползунок трэкбара должен обновляться каждую секунду (милисекунду), а где он может обновляться кроме таймера ? Вот в этом вопрос.
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
15.06.2010, 10:25
Tenass, я обьяснил почему воспроизведение тормозит. Внимательно перечитайте мое предыдущее сообщение. Куда кидать эту строку - я не знаю.
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
15.06.2010, 17:16
У меня вопрос, может не совсем по теме...
На форме нужно воспроизвести видео,
Я использую в роли экрана ListBox тоесть
C++
1
MediaPlayer1->Display=ListBox1;
Но при фокусировки на любой другой элемент, в ListBox(е) появляются штрихи (выделенной строчки)
Вопрос, на каком элементе лучше всего показывать видео, чтобы ничего лишнего не появлялось?
Заранее благодарю!!!
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
15.06.2010, 21:51
Rapsod, обычно на панель выводят.
1
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
16.06.2010, 10:47
Tenass, подумал я, подумал и пришел к выводу что использовать нужно TScroolBar. А чтобы не тормозило - использовать событие OnScroll:
Запускаем (m - это TMediaPlayer):
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    m->FileName="Bla-bla.avi";
    m->Open();
    m->Play();
    ScrollBar1->Max=m->Length;
}
//---------------------------------------------------------------------------
Изменяем позицию ScrollBar, чтобы она была равна текущему кадру (интервал задаем любой)
C++
1
2
3
4
5
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
ScrollBar1->Position=m->Position;
}
//---------------------------------------------------------------------------
Собственно сама прокрутка:
C++
1
2
3
4
5
6
7
void __fastcall TForm1::ScrollBar1Scroll(TObject *Sender,
      TScrollCode ScrollCode, int &ScrollPos)
{
m->Position=ScrollBar1->Position;
m->Play();
}
//---------------------------------------------------------------------------


Добавлено через 1 минуту
Rapsod, или оставляют свойство Display нетронутым, и тогда изображение будет выводится в отдельное окно.
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
17.06.2010, 00:51
Не тормозит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MediaPlayer1->FileName="1.avi";//
MediaPlayer1->Open();
MediaPlayer1->TimeFormat = tfFrames;  // óñòàíàâëèâàåì ôîðìàò âðåìåíè â êàäðàõ
TrackBar1->Max=(MediaPlayer1->Length);
//Edit2->Text=IntToStr(MediaPlayer1->Length);        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TrackBar1->Position=MediaPlayer1->Position;
MediaPlayer1->Play();        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
MediaPlayer1->Position=TrackBar1->Position;
//Edit3->Text=IntToStr(TrackBar1->Position);        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MediaPlayer1Click(TObject *Sender,
      TMPBtnType Button, bool &DoDefault)
{
if (Button==0) Timer1->Enabled=true;
else Timer1->Enabled=false;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2010, 00:51
Помогаю со студенческими работами здесь

Видеоплеер через торрент
Здравствуйте! В общем как все наверное заметили, сейчас один из самых лучших видеохостингов - вк, опустился ниже плинтуса, а остальные...

Видеоплеер через AudioVideoPlayBack
Создал видеоплеер, который воспроизводит видео через DirectX.AudioVideoPlayback. Чисто видео воспроизводит нормально, но как только я...

Видеоплеер, который берет путь к файлу через БД
Добрый день. Вопрос такой: Можно ли как-то передать через БД путь к файлам в видеоплеер? Нигде не нашел нормальной информации по...

Как подключить видеоплеер uppod через php?
Здравствуйте, у меня такая проблема, надо в fullstore.tpl прописать uppod плеер. сам плеер должен автоматом определять содержимое страниц и...

Контрастность через trackbar
Есть trackbar b picherbox как сделать что бы можно было через trackbar Изменять контраст на picherbox


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru