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

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

//下面的代码示范了如何以只写方式打开声卡进行放音(playback)操作:int handle = open("/dev/dsp", O_WRONLY);if (handle == -1) {    perror("open /dev/dsp");    return -1;}/** * 【注意】:缓冲区大小的设置通常应紧跟在设备文件打开之后, * 这是因为对声卡的其它操作有可能会导致驱动程序无法再修改其缓冲区的大小。 */ //下面的代码示范了怎样设置声卡驱动程序中的内核缓冲区的大小:int setting = 0xnnnnssss;int result = ioctl(handle, SNDCTL_DSP_SETFRAGMENT, &setting);if (result == -1) {    perror("ioctl buffer size");    return -1;}// 检查设置值的正确性/**在设置缓冲区大小时,参数setting实际上由两部分组成: * 参数setting: 低16位->标明缓冲区的尺寸,缓冲区大小 = 65536字节.                    相应的公式 :buffer_size = 2^ssss。 *              高16位->标明分片最大序号,取值范围 : 2 -- 0x7FFF.                    分片(fragment);0x7FFF表示没有任何限制. */  /**设置声卡工作时的声道(channel)数目,根据硬件设备和驱动程序的具体情况,  *可以将其设置为0(单声道,mono)或者1(立体声,stereo)。  *///下面的代码示范了应该怎样设置声道数目:int channels = 0; // 0 = mono ; 1 = stereoint result = ioctl(handle, SNDCTL_DSP_STEREO, &channels);if ( result == -1 ) {    perror("ioctl channel number");    return -1; }if (channels != 0) {    // 只支持立体声}

转载于:https://www.cnblogs.com/xuejianhui/archive/2012/11/21/2780424.html

你可能感兴趣的文章
C# Java DES加密解密
查看>>
2011-09-21 16:53 VS2010、C#、Emgu CV配置 ; 在C#下使用OpenCV ; C#中使用OpenCV(Emgu CV);...
查看>>
mysql索引测试案例
查看>>
从topcoder赚钱的方法~
查看>>
会计电算化模拟试题9
查看>>
一名大学生在银行工作8年的职场感悟
查看>>
阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器
查看>>
客户端生成nginx webdav配置
查看>>
接外包私活成功之道(一)-注重服务意识,挖掘深层需求
查看>>
GSM-串口和GPRS-网口通信
查看>>
技术人生:向前端人员学习
查看>>
【产品经理】产品经理的十大顶级错误
查看>>
“AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”问题解决~
查看>>
识别Andriod APK签名证书类型
查看>>
获取CentOS软件源中的updates包
查看>>
git使用说明
查看>>
HTML5 Canvas实现黑客帝国文字掉落效果
查看>>
web 缓存
查看>>
【cocos2d-x 手游研发----怪物智能AI】
查看>>
值得拥有!精心推荐几款超实用的 CSS 开发工具
查看>>