程序打包注意事项
如果需要把我们的程序进行打包,给客户安装使用,那么还需要引导客户额外安装LAVFilters,显得比较麻烦。接下来,介绍,如何将解码器打包进安装包。
1、QMediaPlayer找到解码器的原理
先来看看解码器,安装后的目录,如下:
可以看到,一堆dll、manifest和3个ax文件,我们只需要注册这3个ax文件,QMediaPlayer运行时,就可以根据注册信息找到解码器,并加载这些dll,那么就能解码视频,实现播放了。
注册ax文件:
regsvr32 /s LAVAudio.ax
regsvr32 /s LAVVideo.ax
regsvr32 /s LAVSplitter.ax
卸载ax文件:
regsvr32 /s /u LAVAudio.ax
regsvr32 /s /u LAVVideo.ax
regsvr32 /s /u LAVSplitter.ax
注意:
必须将ax和dll放在一起,否则即使注册后,也无法播放视频。另外注意,ax文件名称不要写错了,因为如果你输入任意的ax文件名,即便文件不存在,也不会提示注册错误。
明白了基本原理,就可以部署打包目录了。
2、部署打包目录
打包目录如下,其中包含程序、视频文件、解码器目录
解码器相关文件,放入LAVFilters文件夹中,如下:
其中新增的3个注册、3个卸载脚本文件,内容如下:
install_audio.bat
regsvr32 /s LAVAudio.ax
regsvr32 /s LAVVideo.ax
regsvr32 /s LAVSplitter.ax
install_splitter.bat
cd /d "%~dp0"
regsvr32.exe LAVSplitter.ax
install_video.bat
cd /d "%~dp0"
regsvr32.exe LAVVideo.ax
uninstall_audio.bat
cd /d "%~dp0"
regsvr32.exe /u LAVAudio.ax
uninstall_splitter.bat
cd /d "%~dp0"
regsvr32.exe /u LAVSplitter.ax
uninstall_video.bat
cd /d "%~dp0"
regsvr32.exe /u LAVVideo.ax
这6个脚本文件,是从绿色版LAVFilters压缩包中获得,可直接下载:https://github.com/Nevcairiel/LAVFilters/releases/download/0.74.1/LAVFilters-0.74.1-x64.zip
打包的思路:
当安装结束后,自动执行install_audio.bat、install_splitter.bat、install_video.bat对ax文件进行注册,而后,程序运行起来,就可以正常解码;
当卸载程序前,自动执行uninstall_audio.bat、uninstall_splitter.bat、uninstall_video.bat对ax进行卸载。
如此,我们就将解码器一起打包了,一次安装,就可以正常使用程序。