微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 搭建基于普通声卡的播放程序

搭建基于普通声卡的播放程序

时间:10-02 整理:3721RD 点击:

搭建基于普通声卡的播放程序


1


    基于成本考虑,有的企业/个人会用普通声卡来代替NI板卡搭建程序。


    很多普通声卡不止在成本上有一定优势,其在性能上(线性度,失真,底噪,直流等)也比NI板卡差不了很多。


    接下来就WDM驱动下的声卡,我们根据范例展开讲解。



                   2


  第一步:调用声卡播放采集相关范例


        在图形与声音—声音---输出面板内,有声音配置,采集,播放等相关vi,如下:

        


                             


也可以直接打开labview自带的范例,在 labview\examples\sound2\sound2.llb里,里面集成了持续声音输入,有限声音输出,持续声音输出等多个可运行程序:




打开GenerateSound.vi,我们在此基础上做播放程序的修改。


前面板:




程序框图:





第二步:将device ID与声卡名称联系起来


打开任何一个labview自带的声卡范例,会发现配置声卡的设备处连接的都是device id,是一个U32数值,该值代表声音操作时使用的输入/输出设备,非常得不直观!


我通过一些渠道找到了可以将设备真实名称与deviceid挂钩的库函数,编写成了如下返回设备输入和输出端口名称的程序:




      直接运行后的结果如下:




从而将0这个不直观的数值与扬声器(输出)/内装麦克风(输入)等直观的名称给联系起来了,感兴趣的话可以私信我了解更多,这一部分是很多讲解声卡播放采集的程序都没有的



     第三步:配置L/R/Mono输出


     对于WDM驱动下的普通声卡来说,device ID对应着声卡的L/R两个声道,也即默认两个通道均有输出。


     在实际使用中,我们可能只需要L通道输出,或者只需要R通道输出,或者LR同时输出,因此需要对输出做一定配置。


     前面板添加L,R,Mono可选的枚举控件:




     程序框图中对L,R枚举选择分支做不同处理,选择L时,将R通道的输出配置为0数组输出:




  选择R时,将L通道的输出配置为0数组输出:





     第四步:搭建程序


     调用了while循环+事件结构,搭建了两个事件分支:设备刷新播放


     设备刷新分支如下,用于刷新WDM驱动下的普通声卡所有通道,名称和ID会返回在WDM通道中。




     播放分支如下,点击播放,切换L,R通道选择,体会下声卡L,R不同通道的输出。




给自己先顶一个


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top