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

  推荐精品文章

·探析云计算下应用软件用户数据安全问题
·地理空间集束线可视化表达
·Android智能净水机APP开发(一)
·2018年12月目录  
·springAOP的思想和设计以及实现
·LeetCode332. 重新安排行程
·基于fastjson的微信模板消息的封装与实现…
·WEB日志清洗 - java代码
·关于C++内存生长
·C++继承——宠物的生长
·python——实现名片管理器
·Clion c++调用c动态链接库
·【C# 重构】-散落的知识
·Java SE—面向对象 this关键字的作用

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