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

  推荐精品文章

·“物链网”的正确打开姿势:区块链如何拯…
·Facebook利用人工智能的六种方式,有些你…
·微软推出Visual Studio Kubernetes工具包…
·Facebook 正在重构 React Native,将重写…
·Facebook 正在重构 React Native,将重写…
·GitLab发布Web IDE 在Web端为你提供集成开…
·5G第一阶段标准发布 中国厂商标准占三成
·微软Windows 10的上下文菜单引入Fluent D…
·蚂蚁金服完成新一轮100亿美元融资 估值15…
·搭搭云发布3.0平台上线暨品牌升级 让SaaS…
·京东推出京点智慧办公方案 一体化服务平台…
·Java 流(Stream)、文件(File)和IO
·Java 异常处理
·Java 基础语法

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