• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : 通过程序调madplay音量问题 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 172
精华: 1
发帖: 48
金钱: 500 两
威望: 68 点
综合积分: 116 分
注册时间: 2008-02-27
最后登录: 2017-09-13
楼主  发表于: 2008-04-07 14:28

 通过程序调madplay音量问题

程序如下,运行后,音量还是一样不变,请问怎样才能使通过程序使音量变小?谢谢

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/soundcard.h>
main()
{
int MIX_FD;
int iLeft = 20;
int iRight = 20;
int iLevel;
iLevel = (iRight << 8) + iLeft;

MIX_FD= open("/dev/mixer", O_WRONLY);
if (MIX_FD == -1) {
perror("Error:open /dev/mixer error");
exit(1);
}
if (ioctl(MIX_FD, MIXER_READ(SOUND_MIXER_VOLUME), &iLevel) == -1) {
perror("Error:MIXER_WRITE ioctl failed");
exit(1);
}
if (ioctl(MIX_FD, MIXER_READ(SOUND_MIXER_VOLUME), &iLevel) == -1) {
perror("Error:MIXER_WRITE ioctl failed");
exit(1);
}
close(MIX_FD);

}
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2008-04-07 15:07
要更改音量,我猜应该用
ioctl(MIX_FD, MIXER_WRITE(SOUND_MIXER_VOLUME), &iLevel)
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 172
精华: 1
发帖: 48
金钱: 500 两
威望: 68 点
综合积分: 116 分
注册时间: 2008-02-27
最后登录: 2017-09-13
2楼  发表于: 2008-04-07 15:33
太好了,音量改为40好点,音质不错。。

还有个问题就是怎样通过一个main.c程序来启动madplay  播放shanghaitan.mp3 和停在它呢?
级别: 侠客
UID: 172
精华: 1
发帖: 48
金钱: 500 两
威望: 68 点
综合积分: 116 分
注册时间: 2008-02-27
最后登录: 2017-09-13
3楼  发表于: 2008-04-07 15:34
太好了,音量改为40好点,音质不错。。

还有个问题就是怎样通过一个main.c程序来启动madplay  播放shanghaitan.mp3 和停在它呢?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2008-04-07 16:20
可以用一个脚本先后调用音量设置程序和madplay
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 172
精华: 1
发帖: 48
金钱: 500 两
威望: 68 点
综合积分: 116 分
注册时间: 2008-02-27
最后登录: 2017-09-13
5楼  发表于: 2008-04-07 17:01
通过程序来实现播放是否也是调用
if (ioctl(MIX_FD, MIXER_WRITE(SOUND_MIXER_VOLUME), &iLevel)

命令来播放只是改了参数?能否给个最简单的模版
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
6楼  发表于: 2008-04-07 18:43
澄清一下概念:
ioctl(MIX_FD, MIXER_WRITE(SOUND_MIXER_VOLUME), &iLevel)是系统调用,用来控制coec的驱动来调整音量,不能用来播放声音;
系统里有现成的播放声音的程序 -- madplay;
我们可以写程序通过调用ioctl()来实现调整音量;
脚本是用来调用程序的,比如我们写的用来调整音量的程序或者文件系统里已经存在的madplay
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 172
精华: 1
发帖: 48
金钱: 500 两
威望: 68 点
综合积分: 116 分
注册时间: 2008-02-27
最后登录: 2017-09-13
7楼  发表于: 2008-04-07 23:24
如何修改CPU频率实现533MHZ,播放10M的mp3有点卡
级别: 侠客
UID: 172
精华: 1
发帖: 48
金钱: 500 两
威望: 68 点
综合积分: 116 分
注册时间: 2008-02-27
最后登录: 2017-09-13
8楼  发表于: 2008-04-07 23:37
532MH也行,怎样修改?谢谢
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
9楼  发表于: 2008-04-08 09:11
修改CPU的主频可以参考S3C2440A手册的第7章以及VIVI的CPU初始化代码。但我建议你还是把2.6.18内核的移植做完,那会对你了解嵌入式Linux有很大帮助,学东西切忌浅尝辄止。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go