提前谢谢您。
当我尝试通过 bash 启动基于 cli 的音乐播放器时,一切都很好,并且播放器 (mplayer) 使用命令行上传递的简单路径 (/home/pi/Music/*) 工作。
但是,当我通过 posix_spawn() 从另一个应用程序运行同一个播放器时,它似乎立即失效了:
pi 7974 7973 51 21:45 pts/0 00:00:05 [mplayer] <defunct>
我想保留生成的播放器的 pid(这样我可以稍后终止它),但我也不希望父进程等待。
请问我可能缺少什么?
代码如下:
#define PLAYERPATH "/usr/bin/mplayer"
//...
char *argV[] = {PLAYERPATH, "-really-quiet", "-shuffle", "-loop 0", "/home/pi/Music/*", (char *) 0};
我想,我希望 mplayer 应用程序能够简单地开始播放音乐。
我不是完全确定为什么这会产生影响(尽管我很想得到解释),但是造成这种影响的原因不是直接生成 mplayer,而是生成
/bin/sh
并让 it 运行 mplayer如下:
char *argV[] = {"sh", "-c", "/usr/bin/mplayer -nogui -really-quiet -loop 0 -shuffle /home/pi/Music/*.mp3", (char *) 0};
//...
status = posix_spawn(&processID, "/bin/sh", NULL, NULL, argV, environ);
将其留在这里,希望对其他人有帮助。