自动播放完文件后停止mpg123
Stop mpg123 after playing the file completely in automatically
首先我使用 mpg123 远程使用 FIFO 实现暂停功能,但现在我想在文件自动播放时关闭 mpg123 播放器。
播放电流的代码是
pid p = fork();
if (p<0)
return;
else if (p==0)
execlp("mpg123", "mpg123", "-R", "--fifo", "aFifo", NULL);
else
system("load test.mp3 > aFifo");
目前如果文件通过那么子进程播放 else if (p==0) 将留在那里并且 mpg123 播放器进程将继续存在
你的问题中没有 ?
,但无论如何
你的代码看起来不对,因为 system
使用 fork
和 exec
在引擎盖下。所以不是一个 fork
和一个 exec
你使用 fork
三次并使用 execv
两次。
在此处阅读如何运行处理:how to correctly use fork, exec, wait
在你 运行 以正确的方式处理后,你有 mpg123
的真实 pid,
所以你可以根据需要杀死它,或者暂停或其他你想要的。
首先我使用 mpg123 远程使用 FIFO 实现暂停功能,但现在我想在文件自动播放时关闭 mpg123 播放器。
播放电流的代码是
pid p = fork();
if (p<0)
return;
else if (p==0)
execlp("mpg123", "mpg123", "-R", "--fifo", "aFifo", NULL);
else
system("load test.mp3 > aFifo");
目前如果文件通过那么子进程播放 else if (p==0) 将留在那里并且 mpg123 播放器进程将继续存在
你的问题中没有 ?
,但无论如何
你的代码看起来不对,因为 system
使用 fork
和 exec
在引擎盖下。所以不是一个 fork
和一个 exec
你使用 fork
三次并使用 execv
两次。
在此处阅读如何运行处理:how to correctly use fork, exec, wait
在你 运行 以正确的方式处理后,你有 mpg123
的真实 pid,
所以你可以根据需要杀死它,或者暂停或其他你想要的。