Видео на рабочем столе

Тема в разделе "WASM.WIN32", создана пользователем Malissa, 11 дек 2006.

  1. Malissa

    Malissa Алена

    Публикаций:
    0
    Регистрация:
    11 дек 2006
    Сообщения:
    2
    Адрес:
    Керчь
    Здраствуйте. У меня такая проблема. Я хочу написать программу, которая будет крутить на рабочем столе указанный видеофайл. Я пробовала писать так: разбивала видео на картинки и потом обычной последовательностью, с определенной задержкой выводила их на рабочий стол. Способ не из удачных:

    1. При разбиении видео на фотки увеличиваеться вес.
    2. Система немного притормаживает от резкой смены картинок и обновления экрана.
    3. Очень плохо для глаз. Я не выдержала и пару минут.

    Писала на Delphi. Думаю исходный код вам ни к чему, так как тут и так понятно как я это реализовывала. Вывести на рабочий стол видео мне так и не удалось нормально без всяких багов. Помогите пожалуйста. Я уже просто незнаю куда обратиться. Никто не знает как это сделать. Заранее благодарна.

    [MALISSA]
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Malissa
    А чем стандартные средства не угодили? Как MediaPlayer, VFW, DSPack (DirectX).
    Я чето не очень пониамаю зачем огород городить, когда все просто выводиться.
     
  3. ViCooper

    ViCooper Victor

    Публикаций:
    0
    Регистрация:
    11 дек 2006
    Сообщения:
    26
    Надежного ответа незнаю, пишу "от скуки"

    Токого даже невидел никада, слыхал шо winamp может крутить "свою красоту" прямо на рабочем столе, значит эта вазможна)). Как вариант: мож получить hWnd ( hDC ) рабочего стола и проделать c ним стандартные манипуляции по выводу видео. Если глупость прости...
     
  4. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Поищи по форуму, нормальный вывод видео обсуждался, а куда его выводить на рабочий стол или в отведённое окно разница не большая :)
    Ещё загляни в пример от KeyMax
     
  5. Leksey

    Leksey New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2006
    Сообщения:
    33
    Можно попробовать ActiveX контрол, его на HTML страницу, а html страницу в качестве рабочего стола :)
     
  6. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    что значит на рабочем столе?

    почитай про MCI* апи может поможет...
     
  7. Malissa

    Malissa Алена

    Публикаций:
    0
    Регистрация:
    11 дек 2006
    Сообщения:
    2
    Адрес:
    Керчь
    Всем спасибо за ответы. Попробу ActiveX, хотя хотелось без него, но походу прийдеться, как сделаю напишу, что вышло.
     
  8. Leksey

    Leksey New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2006
    Сообщения:
    33
    Я с ActiveX делал следующее: написал контрол на Direct3D который изображает вращающийся 3D кубик. потом на html страницу и все работало :) По идее если видео DirectShow проигрывать будет тоже самое.
     
  9. zxm

    zxm New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2006
    Сообщения:
    71
    Winamp может, и при чём довольно шустро. Вот статейка по этой теме.

    http://www.silicontaiga.ru/home.asp?artId=5748
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Malissa
    Честно говоря не совсем понял как работаешь с видео. Используешь стандартный контрол для видео (как его не помню), и с помощью него выводишь? Опиши получше механизм алгоритма, так как всёж не понятно как реализовывала.
    В VCL такого не делал, но можно как сказал ViCooper
    Так вполне можно.
    А вообще использовать для видео VCL, не совсем хорошая идея. Есть DirectShow который может выводить видео в любое окно, в том числе Desktop, знает кучу форматов, позволяет делать эффекты.
    Но вообще насчёт VCL, лучше обращаться на форумы Delphi, Builder.
     
  11. Cyber_Mozg

    Cyber_Mozg Andrey

    Публикаций:
    0
    Регистрация:
    4 апр 2005
    Сообщения:
    203
    Адрес:
    Russia
    zxm
    bsplayer тоже могёт та ещё как
     
  12. xSoft

    xSoft New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    17
    Так ей поди и нужен видео оверлей...

    http://www.delphimaster.ru/articles/directx/index.html

    Рисование на рабочем столе "под значками" с большой скоростью и без всяких
    визуальных конфликтов с GDI - "то-что-делает-WinAmp'овский-AVS-если-включить-overlay-mode-и-set-desktop-to-color".
    Как оно работает, как сделать подобное и для чего ещё можно использовать.
     
  13. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    А где взять либы и инлюды для DirectShow, или хотябы dshow.h для си?
     
  14. explosion

    explosion Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    34
    Lex2029 все это находится в DirectX SDK. Там же находятся справочные данные и примеры (правда, для начала немного сложновато, но я в свое время разобрался). Весит он порядка 350 метров, так что лучше не тащи с инета, а поищи по знакомым и радиорынку. Задача вполне реализуема, я даже выводил видео в окно Блокнота, не говоря уже про рабочий стол.

    В DX SDK все либы для Visual C++. Под билдер тоже есть, я в инете находил. Никаких ActiveX не нужно
     
  15. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    А под асм? Или как быть?
     
  16. explosion

    explosion Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    34
    под асм - нету. Лучше сначала разберись как на C это делать, там и так работы прилично. Затем уже переписывай на асм, с сей проблем меньше. Учти, там абсолютно все на технологии COM
     
  17. Lex2029

    Lex2029 New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2007
    Сообщения:
    199
    А как на асм переделывать? если либ нету?
     
  18. explosion

    explosion Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    34
    ну, самый элементарный и надежный способ - LoadLibrary/GetProcAddress, тем более функций вызывается там немного. Вообще, я не думаю что делать подобное на асме - хороший метод. Объем работы очень большой + еще и COM. Разберись сначала с DirectShow, а потом уже придумаешь как его на асм переложить. В конце концов, необязательно все писать на асме. Часть с dshow откомпилируй на VC++, управляющую часть - на асме и слинкуй это все вместе.
     
  19. Kozyr__

    Kozyr__ New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2005
    Сообщения:
    213
    Адрес:
    Ukraine
    либы переделывать не нужно, если на масм32 пишешь
     
  20. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    DirectShow перенесен из DXSDK в PlatformSDK