基于MPlayer的QT媒体播放器

转自:http://blog.csdn.net/chenyu123123/article/details/8631739

这几天在做关于qt的东西,开始做的基于RTSP的播放器,我用的是MPlayer,可是卡着了,链接的时候老是出差错,只能播放完整的媒体,不能处理流媒体,既然这样我就做一个本地媒体播放器了。我们知道在qt中同一个界面上的部件,如果不使用进程或线程,当一个部件处于活动时,整个界面会处于一种冻结的状态,所以这里我使用了进程。

1.新建Qt项目,类名为mplayer_video。下一步,下一步,我们在系统生成的ui界面上添加按钮(pushbutton),有打开、播放/暂停、快进、快退、增加音量、减小音量,下一媒体,上一媒体,还有一个widget,用于显示视频。

2.在mplayer_video.h的private里添加两个成员:

    QProcess *process;  //定义一个进程,使用进程进行操作,这样不会冻结界面
    QString arg;         //定义一个arg,用来存放要使用的播放器路径,我在这里使用的是mplayer,当然,如果只播放//音频,可以用madplay

然后再mplayer_video.cpp的构造函数中加入他们的初始化:

   process = new QProcess;
    arg = "/bin/mplayer";   // 我的mplayer放在了/bin/mplayer


然后再在构造函数中添加:

QStringList::Iterator ptr;  // ptr是指向QStringList每个数据项的指针,
int i=0;
int j=0;
QString path_name[100];   //用来存放每个文件的路径


3.我们现在先对打开按钮设置信号和槽,单击它,选则“go to slot”,跳到槽函数:进行编写

void mplayer_video::on_pushButton_open_clicked()
{

    process->close(); //每一次新打开时都要把正在播放的关掉

    QStringList filenames = QFileDialog::getOpenFileNames(this,tr("选择文件"),"/",tr("视频文件(*mp3 *wma *3gp *wav *avi *rmvb *mkv *ts *wmv)"));    //  *号和前面的要隔开至少一个空格,不能连起来。

    for(ptr=filenames.begin();ptr<filenames.end();ptr++)
    {
        path_name[i] = *ptr;       //把里面的每个文件的路径放到path_name里
        i++;
    }

    QStringList arg1;
    arg1 << path_name[j];
    arg1 << "-slave";//默认情况下,mplayer接受键盘的命令,而"-slave"使其不再接受键盘事件,而是作为后台程序运                              //行,接受以“\n”结束的命令控制,这样我们可以在进程中给他发送命令,而不需要操作键盘了.
    arg1 << "-quiet"; //尽可能的不打印播放信息
    arg1 << "-zoom"; //视频居中,四周黑条,全屏播放
    arg1 << "-wid" << QString::number((unsigned int)(ui->widget->winId()));
        // "-wid <窗口标识>" 是指让MPlayer依附于那个窗口,ui->widget->winId() 这个指令就是用来获取widget的标识           //码 ,这样视频播放的时候,就在这个部件里播放,相当于给他固定起来。

    process->start(arg,arg1);   //开始播放进程

}

4.给暂停/播放添加槽函数,步骤同上:编写代码:

void mplayer_video::on_pushButton_zanting_clicked()   //p后直接加\n,之间不能有空格
{                                                                                       //它有两个功能,一个是暂停,再俺一下是播放
    process->write("p\n");
}

5.给增加音量添加槽函数,同上:

void mplayer_video::on_pushButton_addvoice_clicked() //  volume是声音控制的关键字,他要和后面给的数字有至少
{                                                                                         // 一个空格,如果不加空格会有问题,你按下没有效果的
    process->write("volume  +2\n"); //没按一下,声音增加两个单位
}


6.给减小音量添加槽函数:

void mplayer_video::on_pushButton_reducevoice_clicked()
{
    process->write("volume  -2\n");      //同上
}

7.添加快进槽函数:

void mplayer_video::on_pushButton_quick_clicked()   //seek是播放进度控制的关键字,他要和后面给的数字有至少
{                                                                                  //一个空格,不加空格会有问题,你按下没有效果
    process->write("seek +10\n");
}

8.添加快退槽函数:
void mplayer_video::on_pushButton_back_clicked()
{
    process->write("seek -10\n");      //同上
}

9.添加下一媒体槽函数:

oid mplayer_video::on_pushButton_next_clicked()  //下一媒体 只需要在第一个媒体和最后一个媒体判断一下就好了,
{                                                                     //第一个媒体的上一个媒体是最后一个,最后一个媒体的下一个是第一个

process->close();

    j=j+1;
    if(j>i-1)
        j=0;

    QStringList arg1;
    arg1 << path_name[j];
    arg1 << "-slave";
    arg1 << "-quiet"; 
    arg1 << "-zoom"; 
    arg1 << "-wid" << QString::number((unsigned int)(ui->widget->winId()));
    process->start(arg,arg1);   //开始进程

}

10.添加下一媒体槽函数:

void mplayer_video::on_pushButton_prio_clicked()  //上一媒体
{ //第一个媒体的上一个媒体是最后一个,最后一个媒体的下一个是第一个
    process->close();

    j=j-1;
    if(j<0)
       j=i-1;

    QStringList arg1;
    arg1 << path_name[j];
    arg1 << "-slave";
    arg1 << "-quiet"; 
    arg1 << "-zoom"; 
    arg1 << "-wid" << QString::number((unsigned int)(ui->widget->winId()));
   
    process->start(arg,arg1);   //开始进程

}

11.现在就可以播放媒体文件了,试试吧。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MPlayer是一个流行的音频和视频播放器,而Qt是一种跨平台的应用程序框架。结合使用MPlayerQt,可以制作一个功能丰富的音乐播放器。首先,你需要安装QtMPlayer。 关于Qt的安装,你可以参考这个链接:。它提供了Qt的安装教程,你可以按照其中的步骤进行安装。 而对于MPlayer的安装,你可以在终端中使用以下命令进行安装:sudo apt-get install mplayer。这个命令会从软件仓库中下载并安装MPlayer。 一旦你完成了QtMPlayer的安装,你可以开始制作音乐播放器了。你可以参考这个链接:。它提供了使用树莓派3B、QtMPlayer制作音乐播放器的详细步骤。在这个链接中,你将找到关于播放、暂停、上一曲、下一曲和音量调节等功能的实现方法。 如果你需要下载MPlayer的最新源码,你可以访问这个链接:。在这个链接中,你将找到MPlayer的最新版本,并且提供了下载和编译的详细步骤。 总结起来,要制作一个mplayer qt音乐播放器,你需要先安装QtMPlayer,然后按照指引进行配置和开发。希望这些信息对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [树莓派3B qt+mplayer制作音乐播放器(10)](https://blog.csdn.net/qq_41102371/article/details/106305346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Qt+MPlayer音乐播放器开发笔记(二):交叉编译MPlayer以及部署到开发板播放演示](https://blog.csdn.net/qq21497936/article/details/119991329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值