關于項目中ijkplayer和優酷土豆視頻sdk無法共存的問題

初次引入IJKMediaFramework 和 YKMediaPlayerSDK。經過pod倒入沒有出現文件庫沖突問題,可以進行正常編譯,但是在播放視頻時,因為 IJKMediaFramework 和 YKMediaPlayerSDK都是基于ffmpeg 封裝的第三方庫,并由于OC中沒有命名空間概念,導致項目中多個ffmpeg的外漏函數出現命名沖突重復引用問題。xcode在調用ffmpeg的時候出現的調用混亂。導致不管是IJKMedia還是YKMedia 同時存在時,播放視頻都導致崩潰問題。

嘗試一:
將IJKMediaFramework 中與 YKMediaPlayerSDK重復的文件進行刪除,解決重復引用問題。但是兩個sdk對包內的ffmpeg有依賴性,刪除后會導致功能無法通過編譯。

嘗試二:
尋找可替代的第三方網絡播放框架,嘗試了 vitamio ,但是依然不行,發現vitamio依然是基于ffmpeg封裝的 第三方框架。目前iOS方面github上面比較完善的 網絡播放框架 都是基于ffmpeg 進行封裝,除了蘋果自帶的AVPlayer(但是支持的視頻類型很少,不滿足業務需求),所以都會有命名沖突文件重復問題。

嘗試三:
對二者的ffmpeg 進行整合。無法運行是因為出現調用混亂,函數名沖突問題。所以想把兩者的ffmpeg統一成一個,這樣就解決了調用混亂問題。對IJKMediaFramework 和 YKMediaPlayerSDK的靜態庫進行解壓 ,對比靜態庫中四個框架arm64、armv7、i386、x86_64中的 對應文件。發現優酷的YKMediaPlayerSDK 對ffmpeg 的源碼進行了改動(可能關于優酷視頻鏈接的加密解密算法算法),所以無法跟 IJKMediaFramework 共用一套。


對比截圖.png

嘗試四:
因為優酷的YKMediaPlayerSDK 中對ffmpeg可能涉及到公司加密算法保密問題拿到源碼改動不現實,所以想對開源框架IJKMediaFramework中的ffmpeg進行更改, 如果可以解決命名沖突問題就可以解決調用混亂這樣就可以多個版本并存。但是 IJKMediaFramework 作者給出了太耗時的答復。https://github.com/Bilibili/ijkplayer/issues/142

嘗試五:
跟優酷客服以及相關技術人員聯系,申請入群暫時沒得到處理,發送了郵件等待技術人員回復。


B51CF7A8-F3D3-4AE7-97A5-526C691DBC1C.png

嘗試六:
嘗試使用不是基于 ffmpeg封裝的 VLC播放框架,但是不支持 m3u8 的直播地址。不符合業務需求。

總結:
iOS端SDK 沖突問題,等待優酷官方自行解決。

========================2017年8月14日==========================
嘗試七:
使用 優酷web端進行視頻播放,讓前端將優酷web端的播放器UI進行重寫(可以高度自定義),完成項目需求,然后將html文件放在服務端,客戶端將對應的vid傳入指定的URL進行視頻播放。JS進行交互回調。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,558評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,257評論 4 61
  • 寒月梅花立, 灼灼映紅顏。 吹雪無情語, 浮沉冷香落。
    不知春阿閱讀 526評論 1 0
  • 你活得開心嗎? 你活得輕松嗎? 你多久沒有享受僅僅一天,哪怕只有一天,無憂無慮的生活? 我們仔細想一想,然后觀察一...
    曜葉閱讀 995評論 0 7
  • 嫉妒,可以演變成各種負面情緒。 高二那年,班里轉來一位插班生,因為要準備考試,我也沒有想和她多接觸的想法。 真正讓...
    瑟戚閱讀 511評論 0 0