QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1160|回复: 9

关于音频编程

[复制链接]
发表于 2005-1-7 09:56:24 | 显示全部楼层 |阅读模式
我在网络上找了很多关于音频编程的例子,做了很多测试,发现了以下问题,请高人赐教。(KDE环境下)
1、在内核2.4版本(RH9)下,声卡不支持全双工打开,而且还不能改变音频参数(如通道数,采样样本信息等),不知道有什么办法可以解决。
2、同样的声卡,在内核2.6版本(FC3)下,就可以支持全双工打开,而且也可以修改音频参数。但是调用函数open("/dev/dsp", O_RDWR)的响应时间太不确定。有时候很快,有时候很长很长的等待。是否可以通过编程控制此函数的响应时间,请高人赐教。
发表于 2005-1-7 15:08:28 | 显示全部楼层
退出kde环境行不行?或者你可以试试alsa驱动,2.6好像用的就是alsa驱动。
回复

使用道具 举报

 楼主| 发表于 2005-1-7 15:24:29 | 显示全部楼层
2.4版本下退出KDE环境后就没有出现打开设备响应慢现象了,但是在2.6版本下仍然是很慢很慢。
(2.6用的是alsa驱动,受教,感谢!)
回复

使用道具 举报

发表于 2005-1-7 22:48:44 | 显示全部楼层
oss ?
或者是 kde 的问题吧?
反正我用gnome没问题
回复

使用道具 举报

发表于 2005-1-8 16:30:33 | 显示全部楼层
怀疑是驱动的问题。
回复

使用道具 举报

 楼主| 发表于 2005-1-10 11:29:33 | 显示全部楼层
我刚开始的时候也是用gnome,和用kde现象是一样的。
调用int fd = open("/dev/dsp", O_RDWR)以读写方式打开,返回标识正确。但是,fd句柄只能用于read,而不能用于write。

我也觉得是驱动问题,但是,我仅仅试验了几台电脑,不能够下结论。DexterK阁下能告诉我您的内核版本是多少吗?
回复

使用道具 举报

发表于 2005-1-10 13:37:57 | 显示全部楼层
有条件你可以试试别的声卡(芯片不一样的)
回复

使用道具 举报

 楼主| 发表于 2005-1-10 16:54:10 | 显示全部楼层
调用函数open("/dev/dsp", O_RDWR)的响应时间太不确定,有的时候要等待很久才有返回,如何才能控制返回时间,哪位高人能指点一二。
回复

使用道具 举报

发表于 2005-1-11 14:30:36 | 显示全部楼层
正常来说应该马上返回,大概没有专门的代码控制返回时间,可能是驱动程序的bug,干了一件不该干的事情。呵呵,说了些废话,我没碰到过这种情况,不敢乱说。
回复

使用道具 举报

 楼主| 发表于 2005-1-12 17:52:55 | 显示全部楼层
找到方法了,只要把arts应用服务关闭就行了。谢谢大家参与,我建议准备进行音频编程的朋友们,如果能够确保程序在X环境下运行,可采取如下方法:
1、KDE环境下,采用arts API函数
2、GNOME环境下,采用ESD
如果不能确保程序在X环境下运行,你只有直接读写声卡了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 19:16 , Processed in 0.064236 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表