是否有使用PId停止和暂停mplayer的命令?

我正在使用播放按钮从我的qt应用程序中播放mplayer。我有两个叫做暂停和停止的按钮。对于播放按钮,我使用了
system ("mplayer "+s.toAscii()+"&");
,其中
s
是播放列表。 对于暂停按钮我使用
system("p");
但它不起作用。我可以使用
system("ps -A |grep mplayer > PID.txt");
将mplayer的进程ID存储到文本文件中。 是否有任何命令可以使用PId停止和暂停mplayer?     
已邀请:
您可能想要的是MPlayer的从属输入模式,这使得从其他程序轻松提供命令。您可以通过在启动时为其提供
-slave
命令行选项来启动MPlayer。 在此模式下,MPlayer忽略其标准输入绑定,而是接受不同的文本命令词汇表,这些词汇表可以一次一个地用换行符分隔。有关支持的完整命令列表,请运行
mplayer -input cmdlist
。 由于您已将问题标记为Qt,因此我假设您使用的是C ++。这是C中的一个示例程序,演示了如何使用MPlayer的slave模式:
#include <stdio.h>
#include <unistd.h>

int main()
{
    FILE* pipe;
    int i;

    /* Open mplayer as a child process, granting us write access to its input */
    pipe = popen("mplayer -slave 'your_audio_file_here.mp3'", "w");

    /* Play around a little */
    for (i = 0; i < 6; i++)
    {
        sleep(1);
        fputs("pausen", pipe);
        fflush(pipe);
    }

    /* Let mplayer finish, then close the pipe */
    pclose(pipe);
    return 0;
}
    
据我所知,不是PID。检查奴隶模式(-slave)虽然。从男人mplayer: 打开从属模式,其中MPlayer作为其他程序的后端。 MPlayer不会拦截键盘事件,而是从stdin读取由换行符( n)分隔的命令。 你可以这样完美地控制它。     
是的,在奴隶模式下使用mplayer。这样您就可以从程序中将命令传递给它。看看qmpwidget。它的开源,应该解决你所有的麻烦。对于命令,请检查mplayer站点或搜索mplayer slave模式命令。     
我在QT写了一个类似的程序,使用mplayer。我使用QProcess来控制mplayer。 这是代码的一部分。在函数playstop()中,你只需发送“q”,它就存在于mplayer中。如果你发送“p”它将暂停mplayer.I希望它对你有用。 Main.h
#ifndef MAIN_H
#define MAIN_H
#include "process.h"
class Main : public QMainWindow
{
public:  
   Process  m_pProcess1; 
Q_OBJECT
public:
  Main():QMainWindow(),m_pProcess1()
{
};

 ~Main()
      {};


public slots:

void play()

{
m_pProcess1.setProcessChannelMode(QProcess::MergedChannels); 
        m_pProcess1.start("mplayer -geometry 0:0 -vf scale=256:204 -noborder -af scaletempo /root/Desktop/spiderman.flv");

};

void playstop()

{
m_pProcess1.setProcessChannelMode(QProcess::MergedChannels); 
        m_pProcess1.writeData("q",1);


};

};

#endif
    

要回复问题请先登录注册