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

时间:2021-08-05 15:52:37
    虽然上个教程中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的,可以升级到任何编译器)
仿迅雷播放器教程 -- 封装VLC (5)
 
 
(由于界面等工作还没开始,所以下一个教程可能会隔得久一点,Alberl会尽快直播~)