仿迅雷播放器教程 -- 基於VLC的MFC播放器 (6)


 

    昨天的教程里寫着預計MFC播放器會隔得久一點,但是今晚仔細看了下VLC的常用代碼,發現VLC封裝得真好,和ffmpeg簡直就是天上地下的區別,所以呢,很快就將VLC的常用功能都加上啦,基本上都是一行代碼解決,再次大喊一聲:這酸爽~~~ 簡直不敢相信!!!

    所以今晚就已經完成了基於VLC的MFC播放器啦,想想當年用那么多時間去折騰ffmpeg,說多了都是淚啊~~~
效果如圖:
    
    實現了常用的功能,也就是那一排按鈕的功能,由於前面的教程已經給出了VLC的示例,所以本節直接給出了所有的VLC代碼,每個函數基本都是一兩行,請自行閱讀。為了讓代碼更簡潔,很多地方沒有加安全驗證,所以播放器的使用請按下面步驟進行:
1、拖拽文件到窗口(這時右邊的播放列表會自動顯示)。
2、雙擊播放列表即可播放文件(沒有過濾文件類型,所以請拖入有效文件)。
3、之后可以隨便點擊那一排按鈕(如快進、快退等等)。
 
    本節教程實現的功能:
1、MFC界面,就是一排按鈕加幾個控件,沒什么好說的啦。
2、VLC封裝,就是那一排按鈕的功能,都在CAVPlayer里,非常簡潔,也沒什么好說的啦。
3、進度條的更新,這個需要說一下。本來Alberl想用定時器來更新進度(分成100份),不過發現VLC竟然提供了事件通知,簡直人性化到極點啊啊啊~~~  所以Alberl就直接用了VLC的事件通知,基本上是解析一幀(或者一小段?)通知一次,並且暫停時不會通知,所以比定時器好了N倍。可以發現OnPosChanged更新進度時並沒有用到VLC的通知事件傳過來的參數,這里Alberl只是給出一個示范,讓大家知道它的用法,之后更新播放時間等各種狀態時可能會用到,所以就先寫出來了。
 
    既然VLC的常用功能都實現了,MFC界面也實現了,現在這個版本已經可以說主體功能都OK了,如果不需要美化界面的話,那剩下的工作僅僅是加上參數判斷等安全驗證,以及細節的一些功能了。
    雖然很快就可以做為一個實用的播放器了,但畢竟現在的軟件界面這么美觀,不美化一下實在拿不出手,所以我們后面將會美化界面,也就是所謂的仿迅雷看看播放器。
    從動手寫代碼到完成一個實用的播放器,僅用了兩個晚上,真是太出乎意料了,Alberl以為linux下的開源庫大部分都像ffmpeg那樣,不搞死你不叫開源庫呢~O(∩_∩)O~   這次VLC的開發真的讓Alberl對linux下發起的開源庫刮目相看,記得VLC官網好像說1.1之前沒有SDK,現在2.0版本不僅提供了SDK,還提供了編譯好的dll和lib,還有完整簡潔的Demo,真是越來越向微軟看齊,越來越照顧菜鳥了哈,愛死VLC啦~~~
    好啦,其實這個播放器沒什么技術含量,如果這樣就算完了,Alberl肯定會被罵死的,站在巨人的肩膀上當然很容易搞出各種東東啦。還記得 上一個系列的教程最后說什么了嗎?
1、看反響。   Alberl第一次寫那么詳細的教程,當然希望小伙伴們支持啦,現在已經9天了,小伙伴們很給面子,而且csdn斑竹更給面子,即使教程寫在博客園,也被推薦到論壇首頁啦,非常感謝csdn的斑竹大大~~~
2、反響不錯就繼續下一個系列的教程,也就是本系列的仿迅雷播放器啦。
    而仿迅雷播放器的重點在什么呢?  從前面的分析可以看出,播放核心早就很完善啦,我們要做的僅僅是換個界面而已,Alberl也可以說“自主研發”了一個播放器哦o(╯□╰)o   埋了這么大的伏筆,就是為了介紹界面,可謂用心良苦啊~~~
    嗯,明天將會開始介紹界面美化,繼續關注哦~O(∩_∩)O~
   
 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM