你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
多路音频实时采样压缩存盘DLL的实现和使用(一)
 

  采用VB6.0VC6.0开发了一个发射台音频远程实时监控系统, 其功能包括多路音频数据的实时采样、处理 、压缩、存盘以及压缩音频的回放。文中将介绍系统程序在VC6.0的实现及在VB6.0中的调用过程。

关键词 动态链接库;调度;数字音频;压缩音频

 

远程实时监控系统需要把检测的音频信号压缩转换为数字信号存储起来以供回放。系统硬件采用恒通的30路音频输入卡采样多路音频数据。音频压缩解码程序用了G729a.lib,VC6.0实现封装成WINIO.DLL动态链接库,供VB 程序调用。G729a是共轭结构代数码激励线性预测(CSACELP)语音编码方案,ITUT推荐的语音压缩编码标准中算法复杂的一种,速率为8 kbit/sG729建议的附件A(Annex A)减少了G729的计算复杂度并可应用于多媒体同步语音和数据。

1 创建线程

    音频实时采样、处理, 音频压缩这部份程序不但对多路音频实时采样, 而且要对多路音频实时压缩, 而压缩存盘需要长时间完成。如果音频采样,音频数据压缩存盘程序同在一个线程中, 随着音频路数的增加, 数据压缩过程就会影响采样过程, 以至丢失部份音频数据。这里的处理是将采样过程放于主程序(主线程),将音频数据压缩存盘程序放于另一个线程中,并在主线程中合理调度音频数据压缩存盘过程。

2 函数说明

信号采样输入部分调用了随卡而来的音频输入库sd878AUD.LIB 。在这个库启动音频输入后,就可用库回调函数void _stdcall SaveAudioStream(int ChanNum,char *Aubufp,int bufsize,int AuMutFlag)  获得通道ChanNum 的输入音频数据,其中Aubufp是音频数据存储区的指针。Bufsize是数字音频数据长度。音频压缩、解压部份调用话音压缩库解码G729a.lib。在WINIO.DLL中如何向VB 主程序传送数据,这里采用了由VB程序向WINIO.DLL传送数组指针的办法,数组指针在WINIO.DLL中指示数据的存储位置。一旦WINIO.DLL 存数据完成,即向VB主程序发送消息,VB 就可通过对数组的使用取得有关数据。VB程序接收WINIO.DLL中的消息,可先建立文本消息窗口,并向 WINIO.DLL传送文本窗口句柄。在WINIO.DLL中通过API函数向文本窗口传送消息。

对于从VB程序向WINIO.DLL传送数组指针与消息窗口句柄,DLL程序封装了函数:
  推荐精品文章

·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录
·2023年4月目录 
·2023年3月目录 
·2023年2月目录 
·2023年1月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089