接手了一个项目,里面用到的播放库比较老并且播放效果不是很稳定,下载了最新的MobileVLCKit编译了一把,跟大家分享一下编译过程:
我的环境是xcode7.1 ,sdk是9.1
编译过程:
参考 https://wiki.videolan.org/VLCKit 中的Building the framework for iOS项
在终端中执行 git Clone http://code.videolan.org/videolan/VLCKit.git,会生成目录下生成一个VLCKit的文件夹,以后所有的操作都是在该文件夹中进行
按照说明,在终端中执行./buildMobileVLCKit.sh,总体来说,for IOS的编译做的比较自动化,只运行此脚本即可,所有编译所需的第三方软件,支持库,都会通过脚本自动下载
文件下载说明:
由于网络问题 google,sourceforge等down不下来,最好有一个给力的VPN
有两个路径分别保存下载的文件
MobileVLCKit\ImportedSources\vlc\contrib\tarballs路径下是下载各种第三方库,例如libxml2,ffmpeg,freetype等
在MobileVLCKit\ImportedSources\vlc\contrib\src中有每一个库对应的文件夹,文件夹下的rules.mak中会有对应的版本路径,如果无法自动下载,可以手动下载一下,然后将包拷贝到tarballs中,需要注意的是SHA512SUMS文件中的校验值要对应上
MobileVLCKit\ImportedSources\vlc\extras\tools\是编译需要的工具的集合,例如automake,autoconf等
在该文件夹下有一个packages.mak的文件,里面描述的是所有的文件下载路径,可以按照路径手动来下载,将包拷贝到tools文件夹中,需要注意的是gas-preprocessor,protobuf,apache-ant这三个,自动下载的时候经常会遇到下载不下来,字节为0的情况
所有包下载完毕后,就开始编译过程,过程中可能会出提示错误而中断,一般来说多运行几次脚本即可,直到编译成功。需要注意的是-n的参数,否则vlc部分,会重新下载
编译成功后,会在build文件夹中生成一系列的libMobileVLCKit.a文件和MobileVLCKit.framework
遇到的一些问题:
libtool: compile: specify a tag with `--tag‘
make[2]: *** [rijndael-arm.lo] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [.gcrypt] Error 2
此处问题,需要检查git环境(例如用户名,邮箱的设置:git --global),以及MobileVLCKit下的patches文件夹下的patch补丁是否打上,我当时是根据编译错误,一路修改到最后,最后发现是所有的patch未打导致的,patch未打会导致后面的一系列问题,建议是出现此问题,马上检查patch环境
例子程序samplePlayBack编译错误
使用libMobileVLCKit.a静态连接,例子程序中头文件和链接文件路径设置时错误的,需要修改正确的。
如果使用MobileVLCKit.framework的方式,将framework拖入到工程的support文件夹中,同时删除头文件和静态库的引用
播放HLS媒体,只有音频没有视频的问题
此问题有可能是vlc的版本问题,切换到2.1-stable或者ios-2.7分支试一下,见https://code.videolan.org/videolan/VLCKit/branches