博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言控制mplayer
阅读量:7028 次
发布时间:2019-06-28

本文共 1353 字,大约阅读时间需要 4 分钟。

hot3.png

    最近使用树莓派的音频播放音频文件(需要外接声卡),自己在网上找一些alsa编程的代码用起来比较复杂,可以是自己设置的原因把,播放时有时会出现杂音。不过这两天看到了一个开源软件mplayer,它的slave模式,可以让你在通过FIFO文件控制它的播放停止和其他功能。这样你就可以通过程序控制mplayer了,甚至可以在它的基础上开发新的软件。这里用的是C语言。今天先立个搞,明天再更。

    

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define FIFO "/tmp/myfifo"int main(){ char * path = "./test.mp3"; if(mkfifo("/tmp/myfifo",0777)) printf("fifo create error\n"); if(!fork()) { system("mplayer -slave -quiet -input file=/tmp/myfifo ./test.mp3"); exit(0); } else { sleep(10); int fd = open(FIFO, O_WRONLY); write(fd, "pause\n",strlen("pause\n")); close(fd); } printf("end!\n"); return 0;}

很多需求下非阻塞open可能会用到的:

int fd = open(FIFO, O_WRONLY|O_NONBLOCK);

指定播放的声卡设备。

card 1, device 0:

mplayer -ao alsa:device=hw=1.0 test.mp3

aplay -l 查看声卡设备。

➜  music aplay -l                    

**** PLAYBACK 硬體裝置清單 ****
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]
  子设备: 1/1
  子设备 #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  子设备: 1/1
  子设备 #0: subdevice #0
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
  子设备: 0/1
  子设备 #0: subdevice #0

设置指定声卡的音量,

amixer -c 1 sset "Speaker",0 60%

1:是指声卡 编号 - - 1 aplay -l 能看到。

”Speaker“ 这个名字可以在alsamixer中看到。0不知道是啥意思。

转载于:https://my.oschina.net/u/2255341/blog/514001

你可能感兴趣的文章
每日英语:Who Needs to Know How to Code
查看>>
oracle11g重新安装oem
查看>>
initrd映像文档的作用和制作
查看>>
Windows Phone-框架结构和启动过程
查看>>
PHP抓取网络数据的6种常见方法
查看>>
android之RatingBar控件用法
查看>>
Cocos2dx Label
查看>>
SkipFish
查看>>
我的菜单在母版页,如何更改菜单点击后的效果
查看>>
积累的VC编程小技巧之树操作
查看>>
Oracle碎碎念~1
查看>>
服务器虚拟化ESXi 5.5安装过程
查看>>
推荐部署网站
查看>>
性能测试误区
查看>>
数据库字段为日期类型时
查看>>
C/C++产生随机数
查看>>
10 部署应用程序和applet
查看>>
IOC容器特性注入第七篇:请求上下文作用域
查看>>
蜗牛—JSP学习之JavaBean初识
查看>>
菜鸟学Java(二十)——你知道long和Long有什么区别吗?
查看>>