最近公司項目需要能夠播放 rtmp 格式的直播流位址的播放器,安卓那邊是買了人家的三方庫,EasyPlayer,但是不想再買一個 ios 的了是以需要自己去找免費的合适的播放器去內建,終于在 github 上找到一個合适的了,那就是 強大的IJKPlayer 播放器;但在內建的時候出現了一些問題,朋友推薦我用 ZFPlayer,也是基于 IJKPlayer 開發的已經內建好的 demo,于是我就改用了更加友善快捷的 ZFPlayer,下面是我內建的步驟;
ZFPlayer 下載下傳位址
- 因為我的項目是老項目,沒有使用 pod,是以我是下載下傳 demo 之後把 ZFPlayer 的庫檔案直接拉進項目裡面的,一定要勾選Copy items if needed,再把 ZFPLayer 項目下面的 IJKMediaFramework導入到項目裡去;
- 使用 pod 的 也可以 pod ‘ZFPlayer’, ‘~> 3.0’ 導入進去;
- 導入進去之後編譯會報錯,是因為沒有添加相應的依賴庫
這是根據官方文檔內建 IJKPlayer 需要內建的依賴,但是在我添加之後發現項目依然報錯,并且是确定我把以上的庫都添加進去了,
看錯誤确定是還缺少庫,多方查找之後再添加了libstdc++.tbd,運作成功;(修改:現在庫裡已經沒有libstdc++.tbd這個庫了,是以需要換成libc++,ijkplayer播放器一定需要添加這個庫);
- 運作成功之後就是內建進項目了,主要看 ZFPlayer 裡面的ZFNoramlViewController相關代碼,跟着來建立自己的播放界面,擷取到自己的播放位址,給 Player 設定 URL
-
self.player.assetURL = [NSURL URLWithString:rtmpUrl];
[self.controlView showTitle:@“視訊監控” coverURLString:@"" fullScreenMode:ZFFullScreenModeAutomatic];
- 運作之後能成功的播放推流界面;
- 最後在打包項目的時候又報錯了, 是因為 ijkplayer 不支援32位手機,需要把 armv7相關的删掉
arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
arm64e:xs以上機型
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
把 armv7和 armv7s 删掉之後,項目成功打包上傳了,就等着通過啦;
最後附上一篇别人內建 IJKPlayer 的硬文
IJKPlayer 內建