QT调用mplayer

本文介绍了如何在QT应用中使用QProcess调用Mplayer进行音乐播放,并详细阐述了如何实现暂停、获取播放进度、快进、音量调节和静音等功能。同时,讨论了如何设置Mplayer参数以及定位视频窗口到QT应用内部。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

暂时知道播放歌曲。

安装mplayer,之后目录下会有个mplayer-core.exe 提取出来。放到源码下面。

代码:

QProcess *mplayerProcess = new QProcess(this);
QString exefile = "mplayer-core.exe";
QStringList arg;
// arg << "-slave";
// arg << "-quiet";
// arg << "-idle";        如果想不播放歌曲的时候就退出mplayer,那么这个参数不要加
arg << "D:/temp/PhonoTest/PhonoTest/1.mp3";

mplayerProcess->start(exefile,arg);

这个文件有12.9M。完全提取?? 暂时不明确。

参数怎么加? 暂时不明确、


通过定义一个QProcess对象调用已编译好的Mplayer。

  QProcess *process = new QProcess();

  process->setProcessChannelMode(QProcess::MergedChannels);

  Process->start(“mplayer –ac –mad xxxxx”);

  在命令中添加 -slave 和 -quiet就可以通过命令设置Mplayer实现相应的功能。在mplayer源码中的,slave.txt中对这些命令有详细的

  Process->start(“mplayer –slave –quiet –ac –mad xxxxx”);

  1.暂停功能

  通过如下代码可以设置Mplayer暂停。

  process->write(“pause/n”);

  执行这段代码的时候如果是播放状态就会暂停,暂停状态时就会继续播放。

  2.获取播放文件的总时间和当前播放进度。

  执行下面代码时,Mplayer将时间在标准输出显示。

  process->write("get_time_pos/n");

  process->write("get_time_length/n");

  通过如下代码即可读出我们需要的信息:

  connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));

  process有可读取的信息时,发出信号,在槽函数back_message_slots()中读取信息。

  void MPlayer::back_message_slots()

  {

  while(process->canReadLine())

  {

  QString message(process->readLine());

  //message即为读取的信息我们可以根据需要取我们要的信息如

  //文件总时间为:ANS_LENGTH=23.00

  //当前时间为:ANS_TIME_POSITION=23.00

  }

  }

  3.快进功能

  seek <value> [type]

  Seek to some place in the movie

  0 is a relative seek of +/- <value> seconds (default).

  1 is a seek to <value> % in the movie.

  2 is a seek to an absolute position of <value> seconds.

  下面代码即可实现快进功能:

  process->write(“seek ** 1/n”);

  4.音量调节

  volume <value> [abs]

  Increase/decrease volume or set it to <value> if [abs] is nonzero.

  下面代码即可实现快进功能:

  Process->write(“volume -1/n”); //音量减小

  Process->write(“volume +1/n”); //音量增加

  5.静音功能

  mute [value]

  Toggle sound output muting or set it to [value] when [value] >= 0

  (1 == on, 0 == off).

  下面代码即可实现快进功能:

  process->write("mute 0/n"); //开启静音

  process->write("mute 1/n"); //关闭静音

  6.定位视频窗口

  通过上面的代码基本功能实现了,可是播放视频的时候发现又弹出一个窗口。并没有出现在我们的窗口里。

  如下代码即可时间窗口的定位。

  QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId());

  process->start(common);

  红色部分实现串口的定位。Widget是一个QWidget对象。通过winId可以获得一个数字,-wid既将视频输出定位到widget窗体部件中。

  注意:-wid参数只在X11、directX和OpenGL中适用。

### MPlayer媒体播放器的使用说明、下载、安装与配置 #### 使用说明 MPlayer是一款功能强大的多媒体播放器,支持多种音频和视频格式。它可以在命令行模式下运行,并提供丰富的选项来控制播放行为[^1]。 以下是常用的几个参数及其作用: - `-vo`:指定视频输出驱动程序。 - `-ao`:指定音频输出驱动程序。 - `-fs`:全屏播放。 - `-sub`:加载字幕文件。 例如,在终端中输入以下命令可以实现带字幕的全屏播放: ```bash mplayer -fs -sub subtitle.srt video.mp4 ``` #### 下载 可以从官方发布页面获取最新版本的源代码包。当前可用的一个稳定版链接如下所示[^3]: - **下载地址**: `http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc4.tar.gz`. 另外还有其他历史版本可供选择,比如 rc1 和 rc2 版本分别位于这些位置[^2][^4]: - `http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2` - `http://www1.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2` #### 安装过程 假设已经成功下载并解压了 tarball 文件,则可以通过执行一系列标准 Unix 构建步骤完成编译与安装工作: 1. 进入解压缩后的目录; 2. 执行 configure 脚本来检测环境设置; 3. 编译项目; 4. 将二进制及相关资源复制至系统路径中去。 具体操作流程如下所示: ```bash tar jxf MPlayer-1.0rc*.tar.* cd MPlayer-* ./configure --prefix=/usr/local/mplayer make sudo make install ``` #### 配置调整 为了优化性能或者适配特定硬件条件,可能需要修改默认配置项。这通常涉及编辑用户家目录下的 `.mplayer/config` 文件或是通过启动时附加额外开关的方式达成目的。 例如增加缓冲区大小以减少网络流中断情况的发生频率: ```bash mplayer -cache 8192 stream_url.flv ``` 如果希望永久保存此类更改,则将其加入个人偏好设定里即可生效。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值