作者:一去、二三里
个人微信号:iwaleon
微信公众号:高效程序员
虽然之前介绍了 libVLC 的工作流程,但只能实现简单的播放。与真正的媒体播放器相比,还相差甚远,因为它连一些基本的控制都没有,像播放/暂停、停止、跳播、快进/快退、音量调节、静音等。
为了让我们的播放器更加专业一些,现在是时候加上这些功能了!
包装器
为了和 UI 分离,需要单独定义一个 Player 类,作为 libVLC 的一个包装器,它的主要作用是提供基本的媒体播放控制功能!
将上述所描述的接口添加进来,同时,再定义一些对应的信号,当有事件发生时,进行通知:
class Player : public QObject
{
Q_OBJECT
public:
// 播放状态
typedef enum State {
Idle,
Opening,
B