zoukankan      html  css  js  c++  java
  • 仿迅雷播放器教程 -- 封装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会尽快直播~)



  • 相关阅读:
    异常总结201304
    Android开发资料[20121125]
    大素数的生成
    django 获取用户IP地址
    python包管理工具pip
    mysql大表修改结构
    素数的检测
    一致性哈希算法 python实现
    素数的生成筛选法
    相似哈希simhash
  • 原文地址:https://www.cnblogs.com/Alberl/p/3369337.html
Copyright © 2011-2022 走看看