• 6130阅读
  • 4回复

[提问]Qt的phonon媒体库调用问题 [复制链接]

上一主题 下一主题
离线gameboy374
 
只看楼主 倒序阅读 楼主  发表于: 2012-03-29
我用Qt写的一个小型音乐播放器,想实现在一首歌播放途中把它停下,再播放其他一首歌的功能。  mediaobject->stop();  mediaobject->clearQueue();调用这两个函数之后虽然能停止当前播放的歌曲,但是在下一次调用play()函数之后,竟然出现混音,同时播放两首歌,请各位指教一下这一点需要怎么写代码呢?
离线gameboy374
只看该作者 1楼 发表于: 2012-03-29
谢谢各位,是我自身代码的问题……
离线ybbntgy99
只看该作者 2楼 发表于: 2012-05-29
使用phonon如何做视频播放器?
我想使用phonon来做个简单的视频播放器 但是做了些 老时再widget上播放不出来 视频 大家帮帮忙忙 谢谢 新手求教
离线godvmxi

只看该作者 3楼 发表于: 2012-05-29
大致思路弄个中间透明的ui,把窗口句柄传递给mplayer,全能播放器就好了,
哈哈,发现自己等级好低。嘿嘿
还有那个mplayer也可以指定绝对坐标的,等debug给你回帖子吧
离线hengfan
只看该作者 4楼 发表于: 2012-05-29
回 2楼(ybbntgy99) 的帖子
     天空  是你的吧 那我就写一下怎么用qt来调用mplayer来做视频播放器吧!!!
在qt里面有一个类QProcess,这个类的作用是调用外部的可执行程序,在qt里面使用这个类
来调用外面的mplayer来播放视频,在这里就需要在提到买player的一种播放模式——slave模式,这种模式下面,是通过管道发送给mplayer相应的信息(在qt里面调用了mplayer后,就相当于产生了一个进程),就是,简单的说,在这种模式下面,你可以在程序里面来写入相应的命令来控制mplayer的播放,下面给出一点相应的实现代码:
   首先,要创建一个累QProcess
   mplayerProcess = new QProcess(this);
    mplayerProcess->setProcessChannelMode(QProcess::MergedChannels); //这个一定要设置
    mplayerProgram = tr("/usr/bin/mplayer");  //你的mplayer的路径
    timeClock = new QTimer(this);
接下来就是通过命令来控制mplayer播放了:
   QStringList args;
    args << tr("-slave");
    args << "-quiet";
    args << "-zoom";
    args << tr("-wid") << QString::number(ui->widget->winId());  //这个是将mplayer的输出(就是视频定位到你自己的窗口中)
    args << fileName;
    mplayerProcess->start(tr("/usr/bin/mplayer"), args);   /开始播放视频,
暂停功能,往mplayer里面写入"pause"来实现,如果视频本身已经暂停了,那么这个命令就是播放了
    mplayerProcess->write("pause\n");
快退 下面的这个实现快退10s
    mplayerProcess->write("pausing_keep seek -10 0\n");  
快进 下面的实现快进的功能
   mplayerProcess->write("pausing_keep seek +10 0\n");
。。。。。。。。。
里面的命令还有一大推,我这里就不直接写了,这里面好像没有挂代码的地方,那么有需要的朋友就直接找我要,将需要发到我的邮箱,我回尽快的将代码奉献(邮箱:1175157632@qq.com)
快速回复
限100 字节
 
上一个 下一个