音量控制
用法:volctrl a b
a b分别为左右声道的音量,范围0-100
编译命令:arm-linux-gcc volctrl.c -o volctrl
-------------------------
效果:
[root /sdcard]# ./volctrl 50 50
Volume :L 100 R 100
Changed:L 50 R 50
由于缺少,就随手写了个。代码直接借用以前帖子的略加修改。
PC机音量分左右,板子上则不分(现在看来是取最低的一个)。
以下代码保存为C文件直接编译。
复制代码- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
- #include <linux/soundcard.h>
- main (int argc, char* argv[])
- {
- int MIX_FD;
- int iLeft=0;
- int iRight=0;
- int iLevel = 0;
- MIX_FD = open ("/dev/mixer", O_WRONLY);
- if (MIX_FD == -1)
- {
- perror ("Error:open /dev/mixer error");
- return 0;
- }
- ioctl(MIX_FD, MIXER_READ(SOUND_MIXER_VOLUME), &iLevel);
- printf("Volume :L %i R %i\n",iLevel >> 8,iLevel - (iLevel >> 8)*256);
- if (argc>=3)
- {
- iLeft = atoi(argv[1]);
- iRight = atoi(argv[2]);
- iLevel = (iRight << 8) + iLeft;
- printf("Changed:L %i R %i \n",iLeft,iRight);
- if (ioctl(MIX_FD, MIXER_WRITE(SOUND_MIXER_VOLUME), &iLevel)==-1)
- {
- perror ("Error:MIXER_WRITE ioctl failed");
- }
- }
- close (MIX_FD);
- return 0;
- }
|
附件为可执行程序
--------------------------------------------
无意中翻到老帖子,看到楼下有人说我骗人……
你们看下发帖日期和板块好不好,当时6410还没出来,这是for2440的。
[ 此帖被fy0在2012-01-22 17:06重新编辑 ]