bool _stdcall sendhwndtlp(HWND apitexthwnd,unsigned char* apilpmax,HWND apistorekhwnd,short* apilpalldata1 short* apilpalldata2,unsigned char* apilpcodedata)
{
...
lpalldata1= apilpalldata1;//保存数字音频数据指针
lpalldata2= apilpalldata2;//保存数字音频数据指针
lpcodedata=apilpcodedata; //保存压缩数据指针
texthwnd=apitexthwnd;// 保存最大值处理消息响应文本句柄
lpmax=apilpmax;// //保存数字音频最大值数据指针
storebackhwnd=apistorekhwnd;// // 保存压缩数据完成消息文本句柄
...
myhand=::CreateThread( NULL, 0, myline, (void*) iterations, 0, NULL); //创建编码线程。
...
return TRUE;
}
输入参数分别是文本句柄TEXTX.HWND(最大值处理消息响应) ,存放最大值的指针, 文本句柄TEXTy.HWND(压缩完成消息响应) , 数字音频数据指针1, 数字音频数据指2,存放压缩数据的指针。 这些指针分别指向VB中的内存数组, 传送到WINIO.DLL, 指示存储采样、压缩数据。
在C程序中,将库文件放置于C程序目录中,设置好头文件后,可直接调用有关函数。下面是必要程序片段,注意一行中,“//”后是解释。
#include "Sd878AuD.h"//音频输入库头文件
#pragma comment(lib,"G729a")//连接语音压缩库
#pragma comment(lib,"Sd878AUD")//连接音频输入库
extern "C" void va_g729a_init_encoder();//压缩库初始化函数
extern "C" void va_g729a_encoder(short *speech, unsigned char *bitstream);//压缩调用
|