QtWebEngine load flash plugin on Raspberry Pi with Jessie Lite
-
Hi All,
Thanks in advance for your help on something that has been driving me crazy. I'm new to Qt. I have Qt 5.8 running on Ubuntu 16.04 and a Raspberry Pi 3 with Jessie Lite. My application launches a page that requires Flash. Got it working no problem on my development machine but i have not been able to get the flash plug in to work on the Raspberry Pi.
I have tried installing flash21 and placing libpepflashplayer.so in each of the required directories as indicated here: https://doc.qt.io/qt-5/qtwebengine-features.html#pepper-plugin-api. None of them worked.
Also, I have set both QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::PluginsEnabled, true); and in my QML file in the Webview item I have settings.pluginsEnabled: true set.
I have also tried the command line arguments in Qt Creator to --ppapi-flash-path=./libpepflashplayer.so, with the appropriate path to the libpepflashplayer.so file, none of which seems to load the plugin.
Any idea what I am missing here?
-
@805Badger I don't think there is flash plugin for RPi - at least not from Adobe. From where did you get flash21/libpepflashplayer.so ? It's most probably x86 library not ARM.
-
Thanks for the reply.
In my first attempt to install flash, I followed the procedure here about Howto: Pepper Flash Player for Chromium-Browser.
I also have done the build on a full version of Jessie, which includes a flash plug in. I verified that flash works using the Chromium browser from the Pixel desktop. However, the plugin isn't located in one of the locations described in the Qt WebEngine Features documentation, so I tried using the command line argument --ppapi-flash-path=/usr/lib/chromium-browser/libpepflashplayer.so, which is the directory that the .so file is located. Still no luck.
So a couple of newbie questions
-
When the documentation says to add a command line argument that means put in in the Arguments field in Qt Creator, correct? Or when you run the application add it there? I've done both and neither loaded the plug in.
-
The Qt WebEngine documentation says to register the plugin using --register-pepper-plugins="libppapi_example.so;application/x-ppapi-example" with the correct address and plugin title. I have done this sort of thing when running chromium from the command line, but since I am not starting chromium myself, where does this go?
Thanks again for any help you can give me.
-
-
@805Badger You should check whether libpepflashplayer.so has any dependencies to other libraries:
ldd libpepflashplayer.so
Also here you're passing a relative path to the lib: --ppapi-flash-path=./libpepflashplayer.so
Try to pass absolute path. -
For Q5 5.7.1 I had to enable plugin support before compiling QtWebEngine to use pepper flash.
By default plugin support for chromium backend is disabled on embedded targets.see https://forum.qt.io/topic/74044/cross-compilation-guide/4
-
Thanks for the suggestion. I forget about ldd and usually notice about missing dependencies when I get an error. It's a great suggestion in this case when I may not see the errors, but I checked and all dependencies have been met.
@sneubert
You're the bomb!!! That was it. I recompiled with the enable plugins flag set and all is working now. Thank you so much for your help. Not sure how else I would have found it.