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

myhand=::CreateThread( NULL, 0, midline, (void*) iterations, 0, NULL);

//创建线程并注册midline为线程

 

DWORD WINAPI myline(LPVOID param)//自定义压缩编码存贮线程

{

while(1) //线程无限循环开始

{

       … //定量的音频数据压缩过程代码 

       … //定量的音频数据压缩完成,调用存盘程序

::SuspendThread(myhand);//线程挂起,

}

return 0;

}

 

在主线程,用下面函数启动编码线程函数:

::ResumeThread(myhand)

 

调度过程: C主程序中设两个内存缓冲区轮换存储多路数字音频原始数据,采样多路数据轮换存储到一个缓冲区, 缓冲区满, 启动压缩编码线程函数, 压缩编码完成,调用存盘程序,挂起压缩线程(不运行), 等待下一个次缓冲区满, 主线程重新启动编码线程函数, 不断循环,实现音频采样处理与压缩互不影响。

 

3.2 消息发送

 DLL对音频的实时处理完成消息 ,如数据分析消息、数据压缩完成消息,要及时通知VB主程序, 接收处理结果,复位以便进行后继处理。这里巧妙地调用向文本窗口传送字符串的API函数解决了这个问题:

1)在VB主程序界面放一文本框TEXTA,取文本框句柄TEXTA.hand

2)主程序开始,向WINIO.DLL 传送TEXTA.hand

3)在WINIO.DLLAPI函数,向TEXTA传送变化的字符串X

SetWindowText( textA.hwnd,x)

4)在主程序,用TEXTA变化处理函数进行响应,

例:

Private Sub Text3_Change()

  取数据程序

END SUB

  推荐精品文章

·黑客频频攻击区块链安全软肋,如何保证区…
·阿里、商汤在香港设立人工智能实验室 本月…
·云端的竞争:巨头纷纷加码云市场
·中国云体系联盟主办未来科技独角兽与行业…
·Gartner:企业首席信息官们可能没有注意到…
·微软开源Azure云服务AI引擎Infer.NET
·创新指纹读取器出炉:平均准确率最高可达…
·微软投资东南亚出行公司Grab 将进行AI等技…
·Facebook开发AI系统:看美食图片能自动生…
·工信部:促进区块链与实体经济深度融合
·谷歌首度证实了重返中国的Dragonfly计划的…
·Java 11正式发布,告诉你到底应不应该升级…
·Stack Overflow 10 周年了,作为程序员你…
·新手初学Python最常犯的十个错误,其中有…

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

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089