一. mplayer
在ubuntu上使用mplayer,需要安装:sduo apt-get install mplayer
在开发板上使用mplayer,需要移植
mplayer有两种工作模式,一种是普通模式,一种是 slave 模式
1. 普通模式播放命令:mplayer -quiet 音视频文件名
在这种模式下可以直接通过键盘快捷键控制播放,其中 -quiet 是不打印多余信息常见的有:
left / right 向后 / 向前搜索10秒
up / down 向后 / 向前搜索 1 分钟
注意:up down left right 是键盘的方向键
p / SPACE(空格键) 暂停播放 (按任意键继续)q / ESC 停止播放并退出
2. salve模式在播放音视频时加上参数 -slave (不加则是普通文件)
mplayer -quiet -slave 音视频文件名
在这种模式下可以从标准输入设备获取命令来控制播放
// 常用命令loadfile newfile // 会结束正在播放的文件,播放新文件---newfile
volume x // 设置音量,中间的x为音量的大小volume +5 // 音量+5
volume -5 // 音量-5
-af volume=-20 // 设置视频初始音量为-20
例如:"mplayer -quiet -slave -af volume=-20 -input file=./fifo 1.mp4 -geometry 0:0 -zoom -x 800 -y 400"
mute 1/0 // 静音开关,1:静音;0:取消静音
pause // 暂停,取消暂停
quit // 退出MPlayer
get_time_length // 返回值是播放文件的长度,以秒为单位
seek value // 向前查找到文件的位置参数 参数 value 为秒数seek 5 // 快进5s
seek -5 // 快退5s
get_percent_pos // 返回播放进度的百分比 (0 --- 99)
get_time_pos // 返回当前播放位置的时间,单位是秒,采用浮点型
// 其他命令get_file_name // 打印出当前文件名
get_meta_album // 打印出当前文件的"专辑"的元数据
get_meta_artist // 打印出当前文件的"艺术家"的元数据
get_meta_comment // 打印出当前文件的"评论"的元数据
get_meta_genre // 打印出当前文件的"流派"的元数据
get_meta_title // 打印出当前文件的'标题'的元数据
get_meta_year // 打印出当前文件的'年份'的元数据
3. 从管道文件中获取命令
在slave模式下,不但可以从标准输入设备获取命令,还可以从指定的有名管道中获取命令
mplayer -quiet -slave -input file=管道文件名字 音视频文件名
我们可以通过写代码往这个管道文件中写入命令来控制 mplayer
如:
一个进程执行:mplayer -quiet -slave -input file=/home/china/1.fifo 1.mp4
另一个进程往 /home/china/1.fifo 管道中写入命令即可控制 mplayer 的播放
int fd = open("/home/china/1.fifo",O_RDWR);
if (-1 == fd) {
perror("open failed");
return -1;
}
write(fd,"pause\n", 6);// 注意所有命令都以 \n 结束才会有效
close(fd);
4. 如果是播放视频,可以设置窗口位置和大小
在开发板上播放视频,除了播放窗口外,还需要留一些空间显示控制图标 (如:静音,播放暂停按钮,上下曲切换,快进快退......)
所以需要设置窗口位置及大小
如:
-geometry 0:0 -zoom -x 400 -y 400
-geometry 0:0 // 指定播放窗口的起始位置
-zoom -x 400 -y 400 // 指定播放窗口的宽和高
二. 项目要求
1. 能够使用mplayer播放器在6818上进行音视频播放
知识点:mplayer移植
2. 能够通过屏幕以及按键控制音视频的播放
例如:上一首 / 下一首,暂停,开始,静音 ......
知识点:mplayer、管道、并发
3. 能够检索默认路径下的文件并进行保存以播放
知识点:文件IO,数据结构
4. 能够连接指定的服务器,从其中下载相应的资源到本地进行播放
知识点:网络编程