Название: Проиграть flash-ролик минимальными затратами Отправлено: nn1317 от Ноября 28, 2009, 11:56 Доброе утро всем)
Задача - проиграть swf ролик в приложении на qt, причем qt версии opensource, т.е. как я понимаю без ActiveX... Нашел по форуму: 1. использование директивы #import, преобразует activeX в что то нативно перевариваемое с++, что то типа длл-ки с парой заголовков. (вроде есть только на VC++) http://lists.helixcommunity.org/pipermail/datatype-cvs/2007-January/005912.html 2. декодер формата, похоже вместе с рендером и похоже на gtk... http://swfdec.freedesktop.org/wiki/ 3. видел тему где человек просто добавляет в QWebView код типа <embed ...> и у него играется ролик - у меня такая страница в IE не показывает ролик, как и в QWebView, хотя фаерфокс нормально отображает... похоже, нужно что то проинсталлировать чтобы работало? 4. в папке system32\Macromed\Flash есть длл NPSWF32.dll с достаточно интересным набором экспортируемых функций: Java_ShockwaveFlash_CurrentFrame_stub Java_ShockwaveFlash_FlashVersion_stub Java_ShockwaveFlash_FrameLoaded_stub Java_ShockwaveFlash_GetVariable_stub Java_ShockwaveFlash_GotoFrame_stub Java_ShockwaveFlash_IsPlaying_stub Java_ShockwaveFlash_LoadMovie_stub Java_ShockwaveFlash_Pan_stub Java_ShockwaveFlash_PercentLoaded_stub Java_ShockwaveFlash_Play_stub Java_ShockwaveFlash_SetVariable_stub Java_ShockwaveFlash_SetZoomRect_stub Java_ShockwaveFlash_StopPlay_stub Java_ShockwaveFlash_TCallFrame_stub Java_ShockwaveFlash_TCallLabel_stub Java_ShockwaveFlash_TCurrentFrame_stub Java_ShockwaveFlash_TCurrentLabel_stub Java_ShockwaveFlash_TGetProperty_stub Java_ShockwaveFlash_TGotoFrame_stub Java_ShockwaveFlash_TGotoLabel_stub Java_ShockwaveFlash_TPlay_stub Java_ShockwaveFlash_TSetProperty_stub Java_ShockwaveFlash_TStopPlay_stub Java_ShockwaveFlash_TotalFrames_stub Java_ShockwaveFlash_Zoom_stub native_ShockwaveFlash_CurrentFrame native_ShockwaveFlash_FlashVersion native_ShockwaveFlash_FrameLoaded native_ShockwaveFlash_GetVariable native_ShockwaveFlash_GotoFrame native_ShockwaveFlash_IsPlaying native_ShockwaveFlash_LoadMovie native_ShockwaveFlash_Pan native_ShockwaveFlash_PercentLoaded native_ShockwaveFlash_Play native_ShockwaveFlash_SetVariable native_ShockwaveFlash_SetZoomRect native_ShockwaveFlash_StopPlay native_ShockwaveFlash_TCallFrame native_ShockwaveFlash_TCallLabel native_ShockwaveFlash_TCurrentFrame native_ShockwaveFlash_TCurrentLabel native_ShockwaveFlash_TGetProperty native_ShockwaveFlash_TGotoFrame native_ShockwaveFlash_TGotoLabel native_ShockwaveFlash_TPlay native_ShockwaveFlash_TSetProperty native_ShockwaveFlash_TStopPlay native_ShockwaveFlash_TotalFrames native_ShockwaveFlash_Zoom внимание, вопрос;) Как все таки проиграть ролик и по какому пути пойти?) Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: BigZ от Ноября 29, 2009, 10:09 http://www.prog.org.ru/topic_11093_0.html
Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: nn1317 от Ноября 29, 2009, 13:23 есть 200$ лишних?)
Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: SABROG от Декабря 07, 2009, 00:25 3. видел тему где человек просто добавляет в QWebView код типа <embed ...> и у него играется ролик - у меня такая страница в IE не показывает ролик, как и в QWebView, хотя фаерфокс нормально отображает... похоже, нужно что то проинсталлировать чтобы работало? QWebSettings::PluginsEnabled в true выставлял? Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: nn1317 от Декабря 07, 2009, 09:32 щас поставил - не помогает...
может для qt надо плагин как то отдельно поставить?) Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: QCasper от Декабря 07, 2009, 10:17 Задача - проиграть swf ролик в приложении на qt, причем qt версии opensource, т.е. как я понимаю без ActiveX... Почему без? The ActiveQt modules are part of the Qt Full Framework Edition and the Open Source Versions of Qt.Пруфлинк (http://doc.trolltech.com/4.6/activeqt.html) Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: nn1317 от Декабря 07, 2009, 10:34 при сборке любого примера из папки examples\activeqt возникает такое:
In file included from ../../../include/ActiveQt/qaxbase.h:1, from ../../../include/ActiveQt/../../src/activeqt/container/qaxwidget.h:43, from ../../../include/ActiveQt/qaxwidget.h:1, from ../../../include/ActiveQt/QAxWidget:1, from webaxwidget.h:45, from ui_mainwindow.h:28, from main.cpp:53: ../../../include/ActiveQt/../../src/activeqt/container/qaxbase.h:55: error: `QtValidLicenseForActiveQtModule' does not name a type In file included from ../../../include/ActiveQt/qaxwidget.h:1, from ../../../include/ActiveQt/QAxWidget:1, from webaxwidget.h:45, from ui_mainwindow.h:28, from main.cpp:53: ../../../include/ActiveQt/../../src/activeqt/container/qaxwidget.h:50: error: `QtValidLicenseForActiveQtModule' does not name a type я так понимаю фишка с лицензией... или qt собрана без activeX?) версия 4.5.1 сдк-ная) Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: QCasper от Декабря 07, 2009, 10:39 Странно, сам я не пробовал, но кагбэ если в доке написано, то вроде бы должно работать... Возможно стоит попытаться собрать из исходников с поддержкой ActiveX.
Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: BRE от Декабря 07, 2009, 10:40 я так понимаю фишка с лицензией... или qt собрана без activeX?) А в pro файле проекта есть такая строка?версия 4.5.1 сдк-ная) CONFIG += qaxcontainer Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: nn1317 от Декабря 07, 2009, 10:54 CONFIG += qaxcontainer стоит изначально...
просто во всех примерах бинари собраны, а в папке activeqt нету их.. я подумал что лицензия обламывает в том числе... но версия несколько старовата... может кто посмотреть в последней версии под minGW - там есть эти бинари в самплах?) Название: Re: Проиграть flash-ролик минимальными затратами Отправлено: nn1317 от Декабря 07, 2009, 13:25 так... нашел http://www.forum.crossplatform.ru/index.php?showtopic=3576
попробовал demos/browser - реально, играет флешки...)) centralWidget->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled,true); centralWidget->webView->settings()->setAttribute(QWebSettings::PluginsEnabled, true); и вправду, помогает... просто пример webkit/formextract какой то странный - на нем это не работает, а вот соседний preview отлично кажет флешки вместе с верхними строчками...;) |