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

  推荐精品文章

·一文解读:工程师常用的接口大全
·谷歌在深圳设立办公室 或专注硬件业务
·甲骨文发布关键补丁 修复英特尔芯片漏洞
·容器圈2017年回顾及2018年技术热点预测
·外媒速递:Web开发者与用户界面开发者之间…
·在2018年最值得去学习的编程语言
·共享医疗来了!温州全民健康信息化“十三…
·百度 CES 发布会:重磅推出 Apollo 2.0,…
·数据科学热到爆,如何让数据成为运维的大…
·芯片涨价潮再度来袭,2018芯片国产化迫在…
·美团云+AI,打造最开放人工智能平台,带来…
·京东京麦:微服务架构下的高可用网关与容…
·阿里云计算公司总部效果图曝光 预计2021年…
·东进:加密将成为中国企业数据安全的标配…

  联系方式
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