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

  推荐精品文章

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

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