音乐播放器mplayer的简单使用 您所在的位置:网站首页 快捷指令播放下一首 音乐播放器mplayer的简单使用

音乐播放器mplayer的简单使用

2024-06-25 14:41| 来源: 网络整理| 查看: 265

mplayer 1、mplayer的安装2、mplayer的键盘模式基本控制键: 3、Slave模式:启动方法一:在终端下敲命令来启动mplayerMplayer 在slave模式下常用的命令: 启动方法二:在进程中调用exec启动Mplayer程序。案例:父进程 控制 子进程的mplayer案例:获得mplayer的回应

在这里插入图片描述

1、mplayer的安装 sudo apt-get update sudo apt-get install mplayer 2、mplayer的键盘模式 启动方法: # mplayer /home/britney_spears.avi (改为自己的路径) 全屏: # mplayer -vf scale=800:480 /home/britney_spears.avi

启动mplayer后可以通过键盘按键来控制mplayer播放

基本控制键:

left or right 向后/向前搜索10秒 up or down 向后/向前搜索1分钟 pageup or pagedown 向后/向前搜索10分钟 p or SPACE 暂停播放(按任意键继续) q or ESC 停止播放并退出 0 or 9 音量控制(音量循环模式)

3、Slave模式:

可以通过给mplayer发送命令的方法来控制mplayer。

启动方法一:在终端下敲命令来启动mplayer # mplayer -idle -slave -quiet /home/sad_or_happy.mp3 1:-ac mad 这两个参数的意思是指定用mad解码器。 2:-idle 播放文件至文件末尾后mplayer不退出。 3:-slave 指定mplayer运行在slave模式下。 4:-quiet 指定mplayer不向屏幕上,打印乱码信息。 5:/home/britney_spears.avi 指定mplayer播放的第一首歌曲的路径。

使用这种方法运行mplayer时,mplayer默认从标准输入去获取命令。 可以在终端下敲命令控制mplayer。例如:pause //暂停mplayer播放

Mplayer 在slave模式下常用的命令: loadfile string //播放string指定的歌曲。 //string为歌曲路径+文件名(例:“loadfile ../easylove.mp3”)。 volume x 1 //设置音量,x为音量的大小。 mute 1/0 //静音开关。1:静音;0:取消静音。 pause //暂停/取消暂停。 seek value //快进或快递参数value指定的秒数 当value为正时,快进;当value为负时,快退。 get_percent_pos //获得文件的播放进度(百分比:0--100)。 get_time_pos //获得文件的当前位置,以秒为单位,精确到小数位1位。 get_file_name //获得文件的文件名。 get_time_length //获得文件的长度,以秒为单位。 get_meta_album //获得文件的 '专辑' 的元数据。 get_meta_artist //获得文件的 '艺术家' 的元数据。 get_meta_comment //获得文件的 '评论' 的元数据。 get_meta_genre //获得文件的 '流派' 的元数据。 get_meta_title //获得文件的 '标题' 的元数据。 get_meta_year //获得文件的 '年份' 的元数据。 get_percent_pos ----->回应格式:ANS_PERCENT_POSITION=52 get_time_pos---->回应格式:ANS_TIME_POSITION=124.2 get_file_name --->回应格式:ANS_FILENAME='da.mp3' get_time_length ---->回应格式:ANS_LENGTH=221.00 get_meta_album--->回应格式:ANS_META_ALBUM='' get_meta_artist--->回应格式:ANS_META_ARTIST='' get_meta_comment--->回应格式:ANS_META_COMMENT='' get_meta_genre--->回应格式:ANS_META_GENRE='' get_meta_title--->回应格式:ANS_META_TITLE='' get_meta_year--->回应格式:ANS_META_YEAR='' 启动方法二:在进程中调用exec启动Mplayer程序。

例:ubuntu下(推荐)

execlp("mplayer", "mplayer","-slave", "-quiet","-idle", "-input", "file=./fifo_cmd", "./media/sad_or_happy.mp3", NULL);

arm下:

execl("./mplayer_arm", " mplayer_arm ", "-ac", "mad", "-slave", "-quiet","-idle", "-input", "file=./fifo_cmd", "./media/sad_or_happy.mp3", NULL); 参数: 1:"-ac", "mad" 指定使用mad解码器。 2:"-slave" MPlayer 从标准输入读取以新行 (\n) 分隔开的命令行。 3:"-quiet" 使得控制台输出消息较少。 4:"-idle" 播放文件至文件末尾后mplayer不退出 5:"-intput", "file=./tmp/cmd_fifo" Mplayer 通过命名管道”./tmp/cmd_fifo”获取命令。 6:song_path_name 歌曲的路径+文件名首地址。 7:NULL Mplayer可以通过它来判断到底有多少个参数,这个必不可少 案例:父进程 控制 子进程的mplayer #include #include #include #include #include #include int main() { //创建一个命名管道 mkfifo("fifo_cmd", 0666); pid_t pid = fork(); if(pid == 0)//子进程 { //启动mplayer execlp("mplayer", "mplayer", "-slave","-quiet",\ "-idle","-input", "file=./fifo_cmd", "da.mp3",NULL); } else if(pid > 0)//父进程 { //以写的方式打开命名管道 fifo_cmd int fd = open("fifo_cmd", O_WRONLY); if(fd int fd = *(int *)arg; while(1) { write(fd,"get_time_pos\n", strlen("get_time_pos\n")); sleep(1); } } void* recv_msg(void *arg) { int *fd = (int *)arg; while(1) { char buf[128]=""; read(fd[0], buf,sizeof(buf)); if(strncmp(buf,"ANS_TIME_POSITION", strlen("ANS_TIME_POSITION")) == 0) { int time = 0; sscanf(buf,"ANS_TIME_POSITION=%d", &time); printf("time=%d\n",time); } } } int main() { //创建一个命名管道(给mplayer发送指令) mkfifo("fifo_cmd", 0666); //创建一个无名管道(接受mplayer应答)】 int pipe_fd[2]; pipe(pipe_fd); pid_t pid = fork(); if(pid == 0)//子进程 { //将标准输出设备1 重定向fd[1] dup2(pipe_fd[1], 1);//close(1), 重定向 //启动mplayer execlp("mplayer", "mplayer", "-slave","-quiet",\ "-idle","-input", "file=./fifo_cmd", "da.mp3",NULL); } else if(pid > 0)//父进程 { //以写的方式打开命名管道 fifo_cmd int fd = open("fifo_cmd", O_WRONLY); if(fd


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有