当前位置: 首页 > news >正文

网站文案优化怎样登录建设银行官方网站

网站文案优化,怎样登录建设银行官方网站,韩国服装网站建设,普通人学python有意义吗一、 音频概念 音频信号是一种连续变化的模拟信号#xff0c;但计算机只能处理和记录二进制的数字信号#xff0c;由自然音源得到的音频信号必须经过一定的变换#xff0c;成为数字音频信号之后#xff0c;才能送到计算机中作进一步的处理。 对于OSS编程来说#xff0c;需…一、 音频概念 音频信号是一种连续变化的模拟信号但计算机只能处理和记录二进制的数字信号由自然音源得到的音频信号必须经过一定的变换成为数字音频信号之后才能送到计算机中作进一步的处理。 对于OSS编程来说需要掌握声音数字化的两个关键步骤采样和量化。采样就是每隔一定时间就读一次声音信号的幅度而量化则是将采样得到的声音信号幅度转换为数字值从本质上讲采样是时间上的数字化而量化则是幅度上的数字化。 下面是音频编程时经常要使用到的技术指标 1. 采样频率 采样频率是指将模拟声音波形进行数字化时每秒钟抽取声波幅度样本的次数。正常人听觉的频率范围大约在20Hz~20kHz之间根据奈奎斯特采样理论为了保证声音不失真采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等。 2. 量化位数 量化位数是对模拟音频信号的幅度进行数字化它决定了模拟信号数字化以后的动态范围常用的有8位、12位和16位。量化位越高信号的动态范围越大数字化后的音频信号就越可能接近原始信号但所需要的存贮空间也越大。 3. 声道数 声道数是反映音频数字化质量的另一个重要因素它有单声道和双声道之分。双声道又称为立体声在硬件中有两条线路音质和音色都要优于单声道但数字化后占据的存储空间的大小要比单声道多一倍。 二、 声卡驱动OSS 目前Linux下常用的声卡驱动程序主要有两种OSS和ALSA。 OSS(Open Sound System)部分代码开源其他部分由4Front Technologies公司以二进制的形式提供。 ALSA(Advanced Linux Sound Architecture)是完全开放源代码的产品。因为OSS由商业公司提供而ALSA由志愿者维护所以OSS支持的声卡类型更多。 1. OSS的安装Ubuntu环境 当前OSS的版本是V4.2-build 2004 下载地址 http://www.4front-tech.com/download.cgi 根据Linux内核版本选择安装包。 P.S查看内核版本的命令为uname –r ubuntu选择DEB包。安装命令dpkg -l oss-Linux_v4.2-2004_i686.deb。安装完成后会在/dev下找到/dev/dsp,/dev/mixer等设备文件。也可以用osstest命令来测试oss是否正常工作。 2. 设备文件说明 l /dev/sndstat 设备文件/dev/sndstat的作用是用于汇报声卡当前的状态。Linux下的cat命令可以方便的获取声卡的当前状态。 l /dev/dsp 声卡驱动程序提供的/dev/dsp是用于数字采样sampling和数字录音recording的设备文件它对于Linux下的音频编程来讲非常重要向该设备写数据即意味着激活声卡上的D/A转换器进行放音而向该设备读数据则意味着激活声卡上的A/D转换器进行录音。目前许多声卡都提供有多个数字采样设备它们在Linux下可以通过/dev/dsp1等设备文件进行访问。 无论是从声卡读取数据或是向声卡写入数据事实上都具有特定的格式format默认为8位无符号数据、单声道、8KHz采样率如果默认值无法达到要求可以通过ioctl系统调用来改变它们。通常说来在应用程序中打开设备文件/dev/dsp之后接下去就应该为其设置恰当的格式然后才能从声卡读取或者写入数据。 l /dev/mixer 在声卡的硬件电路中混音器mixer是一个很重要的组成部分它的作用是将多个信号组合或者叠加在一起对于不同的声卡来说其混音器的作用可能各不相同。运行在Linux内核中的声卡驱动程序一般都会提供/dev/mixer这一设备文件它是应用程序对混音器进行操作的软件接口。 由于混音器的操作不符合典型的读/写操作模式因此除了open和close两个系统调用之外大部分的操作都是通过ioctl系统调用来完成的。与/dev/dsp不同/dev/mixer允许多个应用程序同时访问并且混音器的设置值会一直保持到对应的设备文件被关闭为止。 为了简化应用程序的设计Linux上的声卡驱动程序大多都支持将混音器的ioctl操作直接应用到声音设备上也就是说如果已经打开了/dev/dsp那么就不用再打开/dev/mixer来对混音器进行操作而是可以直接用打开/dev/dsp时得到的文件标识符来设置混音器。 l /dev/sequencer 目前大多数声卡驱动程序还会提供/dev/sequencer这一设备文件用来对声卡内建的波表合成器进行操作或者对MIDI总线上的乐器进行控制一般只用于计算机音乐软件中。 三、 编程接口与框架DSP 无论是OSS还是ALSA都是以内核驱动程序的形式运行在Linux内核空间中的应用程序要想访问声卡这一硬件设备必须借助于Linux内核所提供的系统调用system call。从程序员的角度来说对声卡的操作在很大程度上等同于对磁盘文件的操作首先使用open系统调用建立起与硬件间的联系此时返回的文件描述符将作为随后操作的标识接着使用read系统调用从设备接收数据或者使用write系统调用向设备写入数据而其它所有不符合读/写这一基本模式的操作都可以由ioctl系统调用来完成最后使用close系统调用告诉Linux内核不会再对该设备做进一步的处理。 1. 编程接口 l open系统调用 系统调用open可以获得对声卡的访问权同时还能为随后的系统调用做好准备。 函数原型 1: #include fcntl.h 2: #include sys/types.h 3: #include sys/stat.h 4: //严格说一般使用open系统调用不需要包含sys/types.h,sys/stat.h。 5: int open(const char *path, int oflags); 6: int open(const char *path, int oflags, mode_t mode); 参数path是将要被打开的设备文件的名称对于声卡来讲一般是/dev/dsp。参数oflags用来指明应该以什么方式打开设备文件格式是 (O_RDONLY | O_WRONLY | ORDWR)[ | O_APPEND | O_TRUNC | O_CREAT| O_EXCL] 分别表示以只读、只写或者读写的方式打开设备文件后面参数可选使用O_CREAT标志时需要用3个参数的open调用这时用mode设置文件的权限。 如果open系统调用能够成功完成它将返回一个正整数作为文件标识符在随后的系统调用中需要用到该标识符。如果open系统调用失败它将返回-1同时还会设置全局变量errno指明是什么原因导致了错误的发生。 l read系统调用 系统调用read用来从声卡读取数据 函数原型 1: #include unistd.h 2: size_t read(int fildes, void *buf, size_t nbytes); 参数fildes是设备文件的标识符它是通过之前的open系统调用获得的参数buf是指向缓冲区的字符指针它用来保存从声卡获得的数据参数nbytes则用来限定从声卡获得的最大字节数。如果read系统调用成功完成它将返回从声卡实际读取的字节数通常情况会比nbytes的值要小一些如果read系统调用失败它将返回-1同时还会设置全局变量errno来指明是什么原因导致了错误的发生。 l write系统调用 系统调用write用来向声卡写入数据 函数原型 1: #include unistd.h 2: size_t write(int fildes, const void *buf, size_t nbytes); 系统调用write和系统调用read在很大程度是类似的差别只在于write是向声卡写入数据而read则是从声卡读入数据。参数fildes同样是设备文件的标识符它也是通过之前的open系统调用获得的参数buf是指向缓冲区的字符指针它保存着即将向声卡写入的数据参数nbytes则用来限定向声卡写入的最大字节数。 如果write系统调用成功完成它将返回向声卡实际写入的字节数如果read系统调用失败它将返回-1同时还会设置全局变量errno来指明是什么原因导致了错误的发生。无论是read还是write一旦调用之后Linux内核就会阻塞当前应用程序直到数据成功地从声卡读出或者写入为止。 l ioctl系统调用 系统调用ioctl可以对声卡进行控制凡是对设备文件的操作不符合读/写基本模式的都是通过ioctl来完成的它可以影响设备的行为或者返回设备的状态。 函数原型 1: #include sys/ioctl.h 2: int ioctl(int fildes, int request, ...); 参数fildes是设备文件的标识符它是在设备打开时获得的如果设备比较复杂那么对它的控制请求相应地也会有很多种参数request的目的就是用来区分不同的控制请求通常说来在对设备进行控制时还需要有其它参数这要根据不同的控制请求才能确定并且可能是与硬件设备直接相关的。 l close系统调用 当应用程序使用完声卡之后需要用close系统调用将其关闭以便及时释放占用的硬件资源。 函数原型 1: #include unistd.h 2: int close(int fildes); 参数fildes是设备文件的标识符它是在设备打开时获得的。一旦应用程序调用了close系统调用Linux内核就会释放与之相关的各种资源因此建议在不需要的时候尽量及时关闭已经打开的设备。 2. DSP编程框架 l 打开设备 对声卡进行编程时首先要做的是打开与之对应的硬件设备这是借助于open系统调用来完成的并且一般情况下使用的是/dev/dsp文件。采用何种模式对声卡进行操作也必须在打开设备时指定对于不支持全双工的声卡来说应该使用只读或者只写的方式打开只有那些支持全双工的声卡才能以读写的方式打开并且还要依赖于驱动程序的具体实现。Linux允许应用程序多次打开或者关闭与声卡对应的设备文件从而能够很方便地在放音状态和录音状态之间进行切换建议在进行音频编程时只要有可能就尽量使用只读或者只写的方式打开设备文件因为这样不仅能够充分利用声卡的硬件资源而且还有利于驱动程序的优化。 范例只写方式放音palyback打开设备 1: int handle open(/dev/dsp, O_WRONLY); 2:   3: if (handle -1) { 4:   5: perror(open /dev/dsp); 6:   7: return -1; 8:   9: } l 设置声道channel 根据硬件设备和驱动程序的具体情况可以将其设置为1单声道mono或者2立体声stereo。 范例设置声道 1: ioctl_val chn; 2: if ((ioctl(fd, SNDCTL_DSP_CHANNELS, ioctl_val)) -1) 3: { 4: fprintf(stderr, Set Audio Channels %d failed:%s\n, chn, 5: strerror(errno)); 6: return (-1); 7: } 8: if (ioctl_val ! chn) 9: { 10: fprintf(stderr, do not support channel %d,supported %d\n, chn,ioctl_val); 11: return (-1); 12: } l 设置采样格式 范例 1: ioctl_val bits; 2: if (ioctl(fd, SNDCTL_DSP_SETFMT, ioctl_val) -1) 3: { 4: fprintf(stderr, Set fmt to bit %d failed:%s\n, bits, 5: strerror(errno)); 6: return (-1); 7: } 8: if (ioctl_val ! bits) 9: { 10: fprintf(stderr, do not support bit %d, supported %d\n, bits, 11: ioctl_val); 12: return (-1); 13: } 14:   l 设置采样频率 调用ioctl时将第二个参数的值设置为SNDCTL_DSP_SPEED同时在第三个参数中指定采样频率的数值。对于大多数声卡来说其支持的采样频率范围一般为5kHz到44.1kHz或者48kHz但并不意味着该范围内的所有频率都会被硬件支持在Linux下进行音频编程时最常用到的几种采样频率是11025Hz、16000Hz、22050Hz、32000Hz和44100Hz。 范例 1: ioctl_val hz; 2: if (ioctl(fd, SNDCTL_DSP_SPEED, ioctl_val) -1) 3: { 4: fprintf(stderr, Set speed to %d failed:%s\n, hz, 5: strerror(errno)); 6: return (-1); 7: } 8: if (ioctl_val ! hz) 9: { 10: fprintf(stderr, do not support speed %d,supported is %d\n, hz,ioctl_val); 11: return (-1); 12: } 13:   l 录音、放音 对设备读操作即为录音写操作即为放音。 范例 1: nRD read(s_fd, buff, BUFF_SIZE); l 关闭设备 范例 1: close(dev_fd); 四、 参考资料 1. Linux音频编程指南 http://www.ibm.com/developerworks/cn/linux/l-audio/ 肖文鹏 (xiaowp263.net) 2. OSS--跨平台的音频接口简介 http://www.ibm.com/developerworks/cn/linux/l-ossapi/index.html 汤凯 (tangk73hotmail.com) 3. OSS安装帮助 http://www.opensound.com/release/oss-install.pdf 4Front Technologies 4. Linux下的OSS音频接口编程一例 http://blog.chinaunix.net/space.php?uid7897183doblogcuid189502 rockins。转载于:https://www.cnblogs.com/jasonwang/archive/2011/03/30/oss_program.html
http://www.zqtcl.cn/news/813485/

相关文章:

  • 网站开发中视屏怎样编辑到网页上常州建站公司模板
  • 视频涉台互联网网站怎么做1cpu0.5g服务器用来做网站
  • 营销型网站设计官网怎么做网站优化 sit
  • 怎样获得做网站的客户免费企业网站程序上传
  • 新闻排版设计用什么软件网站seo诊断分析
  • 手机网站端域名怎样做解析一诺摄影设计
  • 网站开发行业竞争大吗郑州百度推广代运营公司
  • mvc4做网站五设计一个公司网站多少钱
  • 在什么网站可以做外贸出口劳保鞋北京 代理前置审批 网站备案
  • 邢台建设企业网站房地产宣传推广方案
  • 建设机械网站案例分析餐饮vi设计开题报告范文
  • 做本地生活网站深圳建设工程信息网站
  • C2C电商网站做博客的网站有哪些
  • 住房和城乡建设部网站 事故安微省建设厅田网站
  • 百度一下你就知道官页淘宝seo搜索引擎优化
  • 网站平台维护phpwind做的网站
  • 网站怎么做移动适配怎么样才算是一个网站页面
  • 做pc端网站策划百度网站建立
  • 高级网站开发技术青岛网站建设方案服务
  • 深圳公司网站建设设房地产网址大全
  • 怎么里ip做网站女生学广告学后悔死了
  • 做西餐网站wordpress 作者栏
  • 创建了网站安卓做视频网站
  • asp自助建站系统房地产楼盘微信网站建设营销方案
  • 网站建设公司发展方向及趋势低代码小程序开发平台
  • 临沂网站建设企业响应式网站首页
  • 福州网上商城网站建设wordpress登录界面logo
  • 子目录网站wordpress无中断音乐插件
  • 网站开发算是研发支出吗淘宝客网站建设的策略
  • 如果在工商局网站上做股权质押刷推广链接的网站