25 lines
1.2 KiB
C
25 lines
1.2 KiB
C
#include <unistd.h>
|
||
#include <stdlib.h>
|
||
#include <stdio.h>
|
||
#include "./includes/start_mplayer.h"
|
||
//启动mplayer播放器:需要安装mplayer, 安装命令:sudo apt install mplayer -y
|
||
//命令测试mplayer播放器: mplayer 简单爱.mp3
|
||
//参数song_path 为歌曲的路径
|
||
void mplayer_play(const char *song_path) // 启动mplayer播放器,播放歌曲
|
||
{
|
||
pid_t pid; // 进程id
|
||
pid = fork(); // 创建子进程, 用于启动mplayer播放器
|
||
if (pid < 0) // 创建失败, fork()返回值小于0,表示创建子进程失败
|
||
{
|
||
perror("fork"); // 打印错误信息
|
||
}
|
||
else if (pid == 0) // 子进程中, fork()返回值为0,表示当前进程为子进程
|
||
{
|
||
close(1); // 关闭标准输出
|
||
close(2); // 关闭标准错误输出
|
||
// 启动mplayer播放器,参数为歌曲路径,-slave表示mplayer进入slave模式,-quiet表示mplayer进入安静模式,不输出任何信息,NULL表示参数列表结束,execlp()函数执行成功后,当前进程就被替换成mplayer进程,所以当前进程不会执行到下面的代码
|
||
execlp("mplayer", "mplayer", "-slave", "-quiet", song_path, NULL);
|
||
// execlp("mplayer", "mplayer", "-slave", song_path, NULL);
|
||
exit(0); // 子进程退出
|
||
}
|
||
} |