开源播放器项目 kxmovie(https://github.com/kolyvan/kxmovie),现在仍然是很多刚开始接触播放器开发的程序员的参照范本。以下是我操作kxmovie项目的过程:
(1)在桌面上建立一个目录,名称可以随便取,我的该目录名为 examples
(2)打开Mac终端,执行命令 git clone git://github.com/kolyvan/kxmovie /Users/dev.temobi/Desktop/examples/kxmovie
git://github.com/kolyvan/kxmovie 是kxmovie项目存放的网络路径
/Users/dev.temobi/Desktop/examples/kxmovie 是我存放从网络下载得到的kxmovie的本地路径
devtemobideMac-mini:~ dev.temobi$ git clone git://github.com/kolyvan/kxmovie /Users/dev.temobi/Desktop/examples/kxmovie
正克隆到 '/Users/dev.temobi/Desktop/examples/kxmovie'...
remote: Counting objects: 565, done.
remote: Total 565 (delta 0), reused 0 (delta 0), pack-reused 565
接收对象中: 100% (565/565), 1.46 MiB | 466.00 KiB/s, done.
处理 delta 中: 100% (358/358), done.
检查连接... 完成。
执行完上面的命令之后,本地examples目录下的kxmovie文件夹中的文件如下:
(3)进入本地examples目录下的kxmovie文件夹路径,执行命令 cd /Users/dev.temobi/Desktop/examples/kxmovie
(4)执行命令 git submodule update --init
devtemobideMac-mini:~ dev.temobi$ cd /Users/dev.temobi/Desktop/examples/kxmovie devtemobideMac-mini:kxmovie dev.temobi$ git submodule update --init
正克隆到 'FFmpeg'...
remote: Counting objects: 421790, done.
remote: Compressing objects: 100% (517/517), done.
remote: Total 421790 (delta 117), reused 0 (delta 0), pack-reused 421273
接收对象中: 100% (421790/421790), 160.59 MiB | 1.65 MiB/s, done.
处理 delta 中: 100% (327924/327924), done.
检查连接... 完成。
子模组路径 'FFmpeg':检出 '1e25afc1811a279094ebc2bc6407715a439e09ee'
正克隆到 'gas-preprocessor'...
remote: Counting objects: 410, done.
remote: Total 410 (delta 0), reused 0 (delta 0), pack-reused 410
接收对象中: 100% (410/410), 155.15 KiB | 0 bytes/s, done.
处理 delta 中: 100% (169/169), done.
检查连接... 完成。
子模组路径 'gas-preprocessor':检出 'cafe6e55a5606c5423c0a0e4045a97f2c3a86338'
devtemobideMac-mini:kxmovie dev.temobi$
执行步骤(3)、(4)之后,FFmpeg源代码被下载到本地,gas-preprocessor.pl脚本也被下载到本地了,在执行(3)、(4)之前,kxmovie文件夹下的FFmpeg、gas-preprocessor文件夹都是空的。
(5)执行命令 rake
devtemobideMac-mini:kxmovie dev.temobi$ rake
Installing the gas-preprocessor to /usr/local/bin
rake aborted!
Permission denied - (gas-preprocessor/gas-preprocessor.pl, /usr/local/bin/gas-preprocessor.pl)
/Users/dev.temobi/Desktop/examples/kxmovie/Rakefile:187:in `block in <top (required)>'
Tasks: TOP => default => build_ffmpeg => check_gas_preprocessor
(See full trace by running task with --trace)
devtemobideMac-mini:kxmovie dev.temobi$
Mac终端中提示:rake命令被终止执行,Permission denied表示没有权限将gas-preprocessor/gas-preprocessor.pl 复制到 /usr/local/bin/gas-preprocessor.pl
那只能修改 /usr/local/bin 目录的操作权限,前往/usr/local/bin ,选中bin目录显示简介,修改其访问权限,改为 读与写
(6)继续执行命令 rake
从上面的运行结果来看,权限问题已经解决,可前往目的文件夹/usr/local/bin/中检查gas-preprocessor.pl是否复制成功
但是出现了新的问题,仔细看了上面的提示信息,发现出现了“-cc=/Applications/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk
” ,说明Rakefile中使用的是Xcode 的iOS SDK 7.1 的版本,此时要注意“要打开Xcode 检查Xcode中有几个版本的iOS SDK库,一般情况只有一个,除非自己下载了一个低版本的iOS SDK”,我使用的是Xcode 6.3,我仔细检查了只有最新的iOS SDK 8.3,并没有iOS SDK 7.1,那问题可能出在这里了,现在要做的是修改kxmovie目录下的脚本Rakefile,将SDK_VERSION='7.1' 修改为 SDK_VERSION=‘8.3’,注意不要直接打开或用文本编辑器打开,进而来修改脚本Rakefile,否则在执行rake时会报错。应该在Mac终端中用命令来操作,修改脚本Rakefile。
如果是直接打开或用文本编辑器打开,进而来修改脚本Rakefile,在终端执行命令 rake,出现报错如下:
正确的操作是,在终端使用命令 vim ,来编辑脚本Rakefile,将SDK_VERSION='7.1' 修改为 SDK_VERSION=‘8.3’,正确步骤如下:
(1) vim Rakefile,打开文件
(2) 按一下键盘上的字母 i ,进入可修改文件的状态
(3) 按一下Esc 键,然后敲入 :wq 命令,保存退出
(7)继续执行命令 rake
...........................
.......................
................
(8)OK,成功了。FFmpeg文件下出现了新的文件夹 arm64、arm7、arm7s、i386、universal
但是universal文件夹中却是个空文件夹。不要以为又出现问题了,以为需要手动合并 arm64、arm7、arm7s、i386文件夹中的FFmpeg库了,其实要注意观察,kxmovie文件夹中多出来了一个文件夹libs,可以看到文件夹libs下有个FFmpeg文件夹,原来是universal文件夹中被合并的FFmpeg库被移动到了libs文件夹中,至于是怎么移过来的,那肯定是在Rakefile脚本中实现的咯。
(9)打开工程会发现,关于cocoapods的东西都是红色的,这是要做什么呢,因为从kxmovie工程的目录中可以看到其使用cocoapods管理第三方库,所以要知道如何使用cocoapods,这里可参考我写的文章 笔谈 cocoapods的安装与使用
(10)关闭Xcode,进入kxmovie目录,执行 pod install (或者 pod update),获取第三方库资源
(11)双击 kxmovie.xcworkspace ,打开工程,就可以发现第三方库被下载下来了,而且这个第三方库所需要的依赖库也自动添加了,这也是大部分人喜欢用cocoapods管理第三方库的原因所在。
(12)运行KxMovieExample,会提示签名错误,修改签名,换成自己的苹果开发者证书,然后再运行,OK,运行成功
细心的人会在Xcode中仔细看工程结构,会发现好多库显示为红色,其实啊不用管,直接运行KxMovieExample就OK啦。
(13)运行效果图
点击第一个 BigBuckBunny_175k.mov ,程序可能崩溃,不管啦,那就试试第二个mp4:BigBuckBunny_115k.mov看奔不奔溃,呵呵,程序没有崩溃,mp4:BigBuckBunny_115k.mov的播放效果如下:(注意:(a)双击播放画面,有放大/缩小画面的效果;(b)支持横竖屏,就是可以旋转屏幕;(c)点击右上角的“i”按钮,可以查看流媒体信息)
(14)以上就是开源项目kxmovie 的整个使用流程,自己做个笔记,或许也会帮助到其他人吧,呵呵。完整的可直接下载运行的项目kxmovie的下载地址为:http://pan.baidu.com/s/1sj9eSLf