1. 程式人生 > >ios 使用動態庫解決ffmpeg庫衝突

ios 使用動態庫解決ffmpeg庫衝突

ios 使用動態庫解決ffmpeg庫衝突

  1. xcode 從6.0開始就支援動態庫的建立和使用,但是蘋果不允許使用動態庫來作熱外掛。
  2. 由於本人是做直播sdk的,在ios端使用ffmpeg做編解碼,客戶有時會整合多家sdk,而且可能都會用到ffmpeg靜態庫,由於用的ffmpeg版本不一致,configure也都不一樣,導致ffmpeg衝突,最終通過動態庫一勞永逸的解決了這個問題,下面就以ffmpeg庫為例來介紹:
  3. 首先用xcode建立一個動態庫,如下圖:
    這裡寫圖片描述
  4. 將ffmpeg靜態庫新增到剛才建立的動態庫中,如下圖:
    這裡寫圖片描述
  5. framework 的動態庫與靜態庫之間的切換方式,如下:
    這裡寫圖片描述
  6. 在動態庫中呼叫ffmpeg的介面,這裡需要注意,如果你在動態庫中沒有呼叫ffmpeg介面,那麼你編譯動態庫的時候,是不會將ffmpeg靜態庫中的函式編譯到動態庫中,如下是我在專案中使用ffmpeg介面的類:
    這裡寫圖片描述
  7. 編譯生成動態庫後,將動態庫新增到專案中,動態庫的使用方式和靜態庫不同,必須在Embedded Binaries中新增,如下圖:
    這裡寫圖片描述
  8. 這種方式基本可以解決所有的靜態庫衝突。