How does QWebKit play a flash?



  • Hi guys,

    I am using Qt 4.7.1 and hope to use QWebView to open a web site that has some flash source files.
    My code like this:

    @QWebView* webView = new QWebView;
    webView->settings()->setAttribute(QWebSettings::PluginEnabled, true);
    webView->load(QUrl("http://news.sina.com.cn/"));
    webView->show();@

    The above code can work on Windows. But, on Mac, I see some icons(a box with a question mark on it). Obviously, it is failed to load the plug-in. However, as the matter of fact, I installed the plug-in in "/Library/Internet Plug-Ins/Flash Player.plugin". And, I can open this website with Safari/Firefox on Mac OS. By the way, my Mac is iMac and OS is 10.6.6.

    I don't know what is wrong in my code. Could you give me some help? Thank you so much.

    • Frank

    EDIT: added @ tag (vcsala)



  • Hi Frank,

    I had a similar problem recently. My issue was that I was running my app as 64-bit and the flash plugin is 32-bit, so they cannot interact.

    I'm using Python and PyQt, so my solution is probably different to yours, but you'll need to make sure your application compiles as 32-bit and possibly Qt as well (although this may have been compiled to support both architectures)

    Hope this helps,
    Rory



  • Hi Rory,

    Thanks for your response.

    Yes, my application is 64bit. The installed flash plug-in is 32bit. I guess that it could be the reason. But, my application must run as 64bit. So, :-(.

    However, my Safari is 64bit. Why can it play flash? I searched this question on Internet. Some people think that I should lunch WebKitPluginHost.app. Through this host application, access 32bit flash plugin. Your idea? And, how do I lunch it in Qt? Could you help me? Thank you so much. Maybe, I should install a 64bit flash plugin. But, I don't search it on Internet. Does flash plugin have 64bit version?

    • Frank


  • I gdb my application. There is the error:


    Error loading /Library/Internet
    Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash Player:
    dlopen(/Library/Internet Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash
    Player, 262): no suitable image found. Did find:
    /Library/Internet Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash Player:
    no matching architecture in universal wrapper



  • Hi Frank,

    As far as I know, there is no version of flash for 64-bit architectures.

    I don't know what the solution to your problem is if you can't compile your app as 32-bit. But you're right, Safari is able to overcome this issue so it must be possible.

    Using a 32-bit host app to run the flash plugin certainly sounds like a possibility, but I don't have any experience using this. Sorry.

    Good luck,
    Rory



  • There is preview version of 64bit adobe-flash and it works fine on linux.
    http://labs.adobe.com/downloads/flashplayer10_square.html



  • Hi Rory,
    Thanks for this quick response. When build my application as 32bit, a flash can be shown. But unfortunately, my application must be 64bit. Ooops...

    Hi Tomma,
    Thanks for your response. In fact, I installed this version of flash plug-in from "http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_2_p3_64bit_mac_111710.dmg". But, you can see that this plug-in still be 32bit, when use nm command to check its information(nm /Users/frank/Desktop/Test/fancybrowser/build/Debug/fancybrowser.app/Contents/MacOS/fancybrowser -arch x86_64). So, even if install this version of flash plug-in, a flash can not be shown, yet.

    Hi Rory and Tomma,
    Is there other way to show flash in Qt except for QtWebKit? Today, I will try Phonon library. Hope to see any progress. Thank guys.

    -Frank



  • Hi guys,

    Today, I tried Phonon library to play a flash. It is failed because QuickTime on which Phonon depends does not support swf(flash file format). Ooops :-(

    -Frank



  • I have the same problem, how do i compile my app as 32bit?

    if I make an project only of qml and use an webview I can run html5 videos with no problem but the debugger shows lots of errors and some times the app crash, on qt I get the same error as the OP



  • any help?!



  • Do you work on XCode?

    If so, follow the step: "Targets" -> "(Your Application)" -> "Get Info" -> go to "Build" table -> go to "Architectures" -> go to "Architectures" -> Select "32-bit Itel".

    That's all. Hope that it can help you.



  • I resolved this problem. The solution just is to invoke a 32bit process(in fact, it is a application) to play a flash while a 64bit application executes. So far, everything is OK. By the way, I don't use WebKitPluginHost.app. :-)

    Generally, I expect that Adobe can release early 64bit flash plug-in. After all, it is a real way.



  • Anyway, thank Rory and Tomma.



  • thanks, I don't work on xcode but i've figured it out how to do.

    i've added this to my .pro file:
    CONFIG -= x86_64 ppc64
    CONFIG *= x86

    I don't need a native 64bit app so i can build it all in 32 :)



  • If you want to make some older Mac users with PowerPC machines (yes, there are still a lot of them around running OS X 10.5!), then change your line to this in order to make a 32 bit universal app:

    @
    CONFIG *= x86 ppc
    @



  • with ppc I get errors as i've posted in the other thread :)



  • Sorry, I missed that. It was just that people slowly forget about this ancient platforms in their apps :-) In most cases there is no or little technical reason for this.



  • I had a similar problem recently,os:embedded linux
    firefox play is ok , but Qtwebkit is not play

    @
    QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true);
    QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, true);
    QWebSettings::globalSettings()->setAttribute(QWebSettings::AutoLoadImages, true);
    view = new QWebView(this);
    view->load(url);
    @

    libflashplayer.so is save /root/.mozilla/plugins

    [EDIT: code formatting, please wrap in @-tags, Volker]



  • who help me?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.