То, что вам, вероятно, нужно, это подчиненный режим MPlayer ввода, который позволяет легко давать ему команды из другой программы. Вы можете запустить MPlayer в этом режиме, задав ему параметр командной строки -slave
при запуске.
В этом режиме MPlayer игнорирует свои стандартные привязки ввода и вместо этого принимает другой словарь текстовых команд, которые могут быть отправлены по одной за раз, разделенные символами новой строки. Для получения полного списка поддерживаемых команд выполните mplayer -input cmdlist
.
Поскольку вы пометили вопрос как Qt, я предполагаю, что вы используете C ++. Вот пример программы на C, демонстрирующий, как использовать подчиненный режим MPlayer:
#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("pause\n", pipe);
fflush(pipe);
}
/* Let mplayer finish, then close the pipe */
pclose(pipe);
return 0;
}