|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.10.2010, 18:03 | #11 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
А что не ясно то? BmpHead: PBitmapInfoHeader; вот вам описание всей информации о Bitmap, а вот pBuffer: PByte; биты изображения, т.е. само изображение по сути. Более ничего не надо. Теперь создавайте CreateDIBSection (кажется) или CreateBitmap после чего получаете HBITMAP, и далее можете работать с GDI/GDI+ либо создавайте соответствующие структуры для работы с DirectX, весь исходный материал уже имеется.
|
24.10.2010, 14:59 | #12 |
Регистрация: 23.10.2010
Сообщений: 6
|
огромное спасибо, вот только вопрос, в буфер получается текущий кадр, но тут не видел нигде момента инициализации SampleGraber'a и нужно ли для этого SampleGraber.SetOneShot(true/false) и каким образом осуществить последующее чтение остальных кадров? через MediaSeeking? если знаешь, хорошую книгу по этому или полное описание функций скажи пжл, а то столкнулся впервые и туго идет.
Последний раз редактировалось sekenr; 24.10.2010 в 15:10. Причина: (косяк) |
24.10.2010, 15:35 | #13 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Хм, я книг не видел, статей 2 видел, очень скудных. Сам разобрался спустя долгое время. А 8й пост http://programmersforum.ru/showpost....32&postcount=8 вам его мало как стартовать ставить паузу и останавливать? Зачем осуществлять чтение следующих кадров? При проигрывании обработчик сам будет вызываться. MediaPosition или MediaControl хватает вполне.
+ сами попробуйте хоть малость написать, я вам 99% выложил готовое. |
24.10.2010, 15:52 | #14 |
Регистрация: 23.10.2010
Сообщений: 6
|
на mediacontrol.pause уж слишком сильно матерится отладчик, да и мне требуется элементарно разбить видео на кадры и работать с каждым в отдельности.
MediaPosition.get_Duration(VideoLen ) - этот момент не совсем понятен, так как возвращает длинну видео MediaSeeking.GetFrameCount (если не ошибаюсь так пишется). П.С. видимо все же у меня руки кривые, но момент с выделением в буфер ничерта не пойму. Подключение к потоку вообще не вижу чтобы использовалось, скорее всего надо почитать повнимательнее литературу или примеры. Видимо не совсем разобрался Последний раз редактировалось sekenr; 24.10.2010 в 15:55. |
24.10.2010, 15:58 | #15 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Какой раз говорю, Метод проб и ошибок. Функции обработчики они уже сами буду выполняться в параллельном потоке. Если вопрос как добраться до него, смотрим какой interface эти функции описывают (или наоборот) после читаем про него детально )) и опа, все становится ясно.
|
24.10.2010, 16:01 | #16 |
Регистрация: 23.10.2010
Сообщений: 6
|
Ну про ошибки и пробы это естественно=) Да и я понимаю что само не заработает. То есть выходит при запуске MediaControl он будет поочереди скидывать кадры в буфер и обрабатывать их можно будет в описаной выше процедуре SampleCB?
|
24.10.2010, 16:10 | #17 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Та емае ))) тут все вообще очень просто. После рендеринга у вас появляется древо графов (если не знаете что такое граф и с чем его едят, читаем и учим) которое из исходного файла(данных) преобразовывает в итоге в 2 потока, звука и видео. В моем случае описанном, аудио поток идет сам собой, проигрывается через стандартное устройство ПК. Видео поток генерируется и при проигрывании файла(данных) в обработчик будет поставляться каждый кадр для дальнейшего вывода куда либо.
Если хотите редактировать каждый кадр, запускаете рендеринг файла далее устанавливая время думаю будут вызываться оброботчики кадров, их получаете и смотрите время каждого кадра, заносите куда надо в программе и все дела вообщем учите и пробуйте, я не буду все разжевывать, каков смысл так. |
24.10.2010, 16:17 | #18 | |
Регистрация: 23.10.2010
Сообщений: 6
|
Цитата:
И еще я не совсем понимаю смысл такого объявления : TArRGBTriple = array[0..0] of TRGBTriple; разве это не пустой массив выйдет? В любом случае огромное спасибо за разъяснение. Последний раз редактировалось sekenr; 24.10.2010 в 16:25. |
|
24.10.2010, 16:25 | #19 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
|
|
24.10.2010, 16:33 | #20 |
Регистрация: 23.10.2010
Сообщений: 6
|
ну насколько я помню array это массив =\
каюсь, понял ошибку Последний вопрос (надеюсь) какие параметры для sampletime и psample предполагаются? я так и не пойму с какими параметрами запускать эту функцию. Что конкретно нужно задавать? все решалось с помощью IBasicVideo и метода GetCurentImage.. а то, что якобы "готовое" во-первых, сырой код без коментариев, а во-вторых, если уж взялся отвечать - отвечай по-человечески, а не выстебывайся. Да и в принципе твой вариант ничерта не дает=) Последний раз редактировалось mihali4; 02.12.2010 в 17:12. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Видеоплеер | blatm100 | Фриланс | 12 | 26.04.2010 12:07 |
Видеоплеер | littlecoder | Мультимедиа в Delphi | 3 | 16.12.2008 01:09 |
Ищу видеоплеер | Квэнди | Софт | 8 | 25.06.2008 14:32 |
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? | dagarik | БД в Delphi | 7 | 22.10.2007 17:54 |
компонент видеоплеер | @Ri$91 | Общие вопросы Delphi | 5 | 25.11.2006 13:55 |