挖坑
——————————
首先,先實現FFmpeg+SDL+MFC實現圖形界面視頻播放器。
在搜MFC的時候發現了這樣的說法。所以對于MFC大概需要淺嘗輒止吧。
1.新建一個MFC工程文件(由于我的VS中的VC++安裝不完整,所以一開始無法新建MFC工程文件,需在控制面板的程序卸載中對VS2015進行修改,具體我也不知道需要哪個,總之我把對應的VC++目錄下的未安裝文件都勾上了。)
安裝更新也是屬于被屏蔽的,記得找個好點梯子,穩定點比較好,不然折騰死人(一分錢一分貨吧,不然很耗時間的╮(╯▽╰)╭,中途斷掉又要重來,我能怎么辦啊我也很絕望啊)。
然后就可以新建MFC工程啦。
點擊下一步
選擇基于對話框
點擊完成之后就出現了如下圖所示:
接下來開始設置控件
點擊 ?菜單欄 --> 視圖--->工具箱,打開工具箱。
常用控件有:Button,Edit Control,Static Text等
找到“屬性”選項卡
可以在“Caption”屬性上修改控件上的文字
可以在“ID”屬性上修改控件上的ID(ID是控件的標識,不可重復)
選中這個執行
然后彈出對話框如下圖所示:
這就是一個簡單的編寫MFC的過程。
簡單地了解了MFC之后,現在我們需要來實現FFmpeg + SDL + MFC實現圖形界面視頻播放器。
主要就是將FFmpeg和SDL這兩個資源整合進MFC。
FFmpeg解碼器與MFC的整合
需要將視頻文件路徑從MFC界面上的 Edit Control 控件傳遞給FFmpeg解碼器
GetWindowText()
SDL與MFC的整合
需要將SDL顯示的畫面繪制到MFC的 Picture Control 控件上。
SDL_CreateWindowFrom()
實現一個圖形界面的視頻播放器
用VS2015直接打開VS2010的文件,然后發現編譯報錯。
在公共頭文件里或者產生這些警告的cpp文件的開頭加入pragma warning。
#pragma warning(disable:4005 4312 4244 4520 4018 4267 4800 4996 4482 4101 4002 4102 4101)
但是,還是報錯,于是我強制關閉了警告報錯。
1>ffplaycore.cpp(1692): error C3688: 文本后綴“PRId64”無效;未找到文文本運算符或文本運算符模板“operator """"PRId64”
原因分析
這種錯誤一般是在對下載得到的代碼進行編譯時出現,實際是文件編碼問題。這時下載得到的文件編碼為UTF-8,而Windows中文版默認使用GB2312,對于UTF-8編碼的某些字符,在中文版VS下就容易因解碼錯誤導致亂碼造成編譯錯誤。
解決方法
將出錯的文件編碼格式轉換為GB2312即可(一般不會所有文件都出錯)。
雙擊此錯誤會跳到出錯的文件,這時在Visual Studio菜單欄上點擊“文件”->“高級保存選項”,在“編碼”下拉框選擇“簡體中文(GB2312)”,然后“確定”即可。重新編譯就沒問題啦!
但是還是不行。。
分析一下發現這里只是一個字符串常量,所以應該是可以刪去報錯的字符串的。
然后出現新的錯誤:
解決辦法
選擇:使用鏈接時間代碼生成
這里需要改成跟上面一樣。
開始在命令行進行設置
寫入:/SAFESEH:NO
折騰到這里,終于成功編譯。
選擇一個本地文件,進行播放。
參考鏈接:
http://blog.csdn.net/leixiaohua1020/article/details/28685327
https://www.polarxiong.com/archives/%E8%A7%A3%E5%86%B3Visual-Studio%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF-%E6%96%87%E6%9C%AC%E5%90%8E%E7%BC%80%E6%97%A0%E6%95%88-%E6%9C%AA%E6%89%BE%E5%88%B0%E6%96%87%E6%96%87%E6%9C%AC%E8%BF%90%E7%AE%97%E7%AC%A6%E6%88%96%E6%96%87%E6%9C%AC%E8%BF%90%E7%AE%97%E7%AC%A6%E6%A8%A1%E6%9D%BF.html
http://blog.csdn.net/hejjunlin/article/details/68921811