問題原因
其實道理很簡單,因為FFmpeg本身的標頭檔案已經宣告瞭AVMediaType
這一列舉型別,如果再在Xcode工程裡引入AVFoundation.framework
框架的話,AVFoundation
本身也宣告瞭一個AVMediaType
的列舉。這就導致了編譯出錯。
解決方案
既然已經知道為什麼會編譯不過了,要解決這個編譯問題,只能改程式碼,由於iOS的SDK是無法修改的,我們只能從FFmpeg的原始碼著手。
這裡就不上圖了,很簡單。
- FFmpeg原始碼裡面有一個 AVFoundation.m 的檔案,這裡面的
AVMediaType
相關的內容不需要更改。 - FFmpeg其它檔案中出現過
AVMediaType
的地方全部改成你自己喜歡的宣告。