仿迅雷播放器教程 -- 封裝VLC (5)


    雖然上個教程中10多行代碼便做出了一個播放器,但如果加上快進快退等功能的話,代碼都會擠在一團,閱讀性很差,所以這個版本將對VLC進行封裝,由於第一個教程已經進行了ffmpeg的封裝,所以這里將利用它的框架CAVPlayer,由於這些封裝代碼都很簡潔明了,所以將不再對細節一一介紹,直接給出封裝好的代碼。
#include <string>
#include "AVPlayer.h"
 
int main(int argc, char* argv[])
{
    std::string strCMD;
    CAVPlayer   cAVPlayer;
 
    cAVPlayer.Play("G:\\media test\\music\\amani.wma");
 
    while(true)
    {
        std::cin >> strCMD;
 
        if (! strCMD.compare("Quit"))
        {
            break;
        }
    }
 
    return 0;
}

    運行之后,輸入Quit即可退出。這里有效代碼僅僅一行,是不是比上一個教程又簡潔很多呢~O(∩_∩)O~

    其中CAVPlayer的部分封裝如下:
class CAVPlayer
{
public:
    CAVPlayer(void);
    ~CAVPlayer(void);
 
    void Init();                            // 初始化
    void Close();                           // 關閉文件及清理
 
    bool Play(const std::string &strPath);  // 播放路徑為strPath的文件
    void PlayNext();                        // 播放下一個文件
    void PlayPre();                         // 播放上一個文件
 
    void Stop ();                           // 停止
    void Pause();                           // 暫停
 
    void Volume(int nVol);                  // 音量設置為nVol
    void VolumeIncrease();                  // 音量增大
    void VolumeReduce();                    // 音量減小
 
    void SeekTo(int nPos);                  // 跳到指定位置nPos
    void SeekForward();                     // 快進
    void SeekBackward();                    // 快退
......
}

    CAVPlayer目前只實現了Play函數,其他函數將會在后面的教程一次性實現,屆時不再一一列出,這里給出一個框架,加快大家對VLC的認識。 

 
(代碼在win7系統的VC6、VS2008、VS2010、VS2012下均編譯通過;在XP系統的VS2008、VS2010下均編譯通過;在gcc下應該也能編譯通過,不過沒有用gcc測試。
由於第一個教程給出的是VS2010的代碼,有些小伙伴沒安裝這個編譯器,導致很多問題,所以這個教程給出的代碼是VC6的,可以升級到任何編譯器)
 
 
(由於界面等工作還沒開始,所以下一個教程可能會隔得久一點,Alberl會盡快直播~)




免責聲明!

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



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