Qter 发表于 2018-4-18 14:14:39

Qt5.5.1基于QWebView实现flash播放

本帖最后由 Qter 于 2018-4-19 16:03 编辑

Linux下引入 QWebView#include <QWebView>

    QWebView* webView;
    QVBoxLayout * mainLayout;
    QWebSettings *websetting;


    websetting = QWebSettings::globalSettings();
   websetting->setAttribute(QWebSettings::PluginsEnabled, true);
   websetting->setAttribute(QWebSettings::JavaEnabled, true);
   mainLayout = new QVBoxLayout(ui->page);
   webView= new QWebView(ui->page);
   mainLayout->addWidget(webView);
   webView->load(QUrl("http://www.firemail.wang:8088/chunhui_resource/preschool/letters/a.swf"));
   webView->show();
上在代码 无论是windows还是linux都无法播放flash
网页可以正常打开

链接:https://pan.baidu.com/s/1WG644b1uJl2tka6KzfujBg 密码:sk97

----------windows-------------
安装flashplayer29_ha_install.exe后,会生成如下两个文件
C:\Windows\SysWOW64\Macromed\Flash\NPSWF32_29_0_0_140.dll
C:\Windows\System32\Macromed\Flash\NPSWF64_29_0_0_140.dll

下载 NPSWF32_13_0_0_182.dll

放置在exe目录下的plugins, 否则可能无法加载flash 插件

目录结构:

test.exe

plugins

      └────NPSWF32_13_0_0_182.dll

--------cpu占用高??------------

下载其它版本
https://www.dll-files.com/npswf32.dll.html


--------------linux---------------没成功

Qter 发表于 2018-4-18 15:03:03

本帖最后由 Qter 于 2018-4-18 17:04 编辑

https://www.cnblogs.com/lingdhox/p/3666072.html

1. 通过QAxWidget 调用com形式显示flash, 需要本机安装IE flash插件

2. 直接通过qwebview显示flash, 需要下载webkit 的flash插件 NPSWF32.dll---windows下成功

下载 NPSWF32_13_0_0_182.dll

放置在exe目录下的plugins, 否则可能无法加载flash 插件

目录结构:

test.exe

plugins

      └────NPSWF32_13_0_0_182.dll



显示本地flash 需要加file:/// , 如 file:///d:/myswf.swf

npswf.dll 在本人写文章时, 最新版是13, 大小15M.

估计大部分可能无法接受这个大小

所以, 如果你没有用到很高级的flash特性的话, 建议找版本老一点的npswf.

比如本人用的就是9.x版的npswf.dll, 大小仅为2.6M


3.还有另外一种方法, 为QWebView编写插件, 手动解析flash

这个方法是有很严重的bug, 这里只是说下思路, 并且该方法也可以用于解析pdf等等

写一个webkit的插件

Qter 发表于 2018-4-18 15:13:13

本帖最后由 Qter 于 2018-4-18 15:14 编辑

网景NPAPI(Netscape Plugin API)
NPAPI是当今最流行的插件架构,几乎所有浏览器都支持,不过存在很大的安全隐患,插件可以窃取系统底层权限,发起恶意攻击。

2010年,Google开发了新的PPAPI,将外挂插件全部放到沙盒里运行,2012年Windows、Mac版本的Chrome浏览器先后升级了PPAPI Flash Player,并希望今年底之前彻底淘汰NPAPI。
现在,所有使用PPAPI接口的基于Chromium的浏览器都可以用上新版Flash Player了,但是注意Google Chrome并不需要、也不使用这种新的安装程序。
据体验过PPAPI Flash Player的用户称,它的CPU和内存占用率会比较高,主要是因为缓存大多放在内存里而不是硬盘上,还请注意

Qter 发表于 2018-4-18 17:52:20

linux下从
https://labs.adobe.com/downloads/flashplayer.html 下载对应平台下的32位或64位
flash_player_npapi_linux.i386.tar.gz
flash_player_npapi_linux.x86_64.tar.gz
解压后把libflashplayer.so拷贝到/usr/lib/flash-plugin
libflashplayer32.so
libflashplayer64.so
sudo ln /usr/lib/flash-plugin/libflashplayer32.so /usr/lib/mozilla/plugins/libflashplayer.so

sudo ln /usr/lib/flash-plugin/libflashplayer64.so /usr/lib/mozilla/plugins/libflashplayer.so


页: [1]
查看完整版本: Qt5.5.1基于QWebView实现flash播放