实现ffplay命令行执行命令,数字1模拟播放/暂停,数字2切换下一首,数字3切换上一首,数字4切换歌曲模式,例如单曲模式,单曲循环,列表循环等,默认为单曲模式。
note:暂停时结束所有进程,记录播放的时间戳,播放时把命令行执行的出书重定向到一个日志文件中去,从日志中获取时间戳开始播放。
至于模式的选择,需要设置信号处理函数,处理子进程的退出状态,执行相应的操作,以下为例程c语言源码。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
#define MAX_SONGS 3
typedef enum {
SINGLE_PLAY,
SINGLE_REPEAT,
PLAYLIST_REPEAT
} PlaybackMode;
char *songs[MAX_SONGS] = {
"/mnt/hgfs/share/poxiao.mp3",
"/mnt/hgfs/share/talk_anymore.mp3",
"/mnt/hgfs/share/attention.mp3"
};
int current_song = 0;
pid_t player_pid = 0;
double pause_timestamp = 0.0;
PlaybackMode current_mode = SINGLE_PLAY;
// 获取当前播放时间
double get_current_playback_time() {
char buffer[256];
double time = 0.0;
FILE *ffplay_pipe;
// 确保 /tmp/ffplay_log 文件存在并且 ffplay 正在写入时间戳
ffplay_pipe = popen("grep -oP '\\b[0-9]+
C语言实现ffplay命令行播放控制

最低0.47元/天 解锁文章
634

被折叠的 条评论
为什么被折叠?



