基于VC6.0的多线程编码及音频读取
来源:互联网 发布:听音记谱软件 编辑:程序博客网 时间:2024/06/13 04:39
平台:win7+vc6.0
以下代码为应用vc6.0多线程读取音频模板:
#include <iostream.h> #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <math.h>#include <stdarg.h>#include <time.h> #include <string.h> #include "windows.h" #include "mmsystem.h"DWORD _stdcall ThreadProc(LPVOID lpParameter)//线程执行函数{//音频输出参数// TODO: Add your command handler code hereMCI_OPEN_PARMS mciOpenParms;MCI_PLAY_PARMS PlayParms;mciOpenParms.dwCallback=0;mciOpenParms.wDeviceID=0;mciOpenParms.lpstrDeviceType="waveaudio";mciOpenParms.lpstrAlias=" ";PlayParms.dwCallback=0;PlayParms.dwTo=0;PlayParms.dwFrom=0; int si=100; while(si>0) { if(si%5==1)//符合条件报出音频{mciOpenParms.lpstrElementName="D:\\文件夹\\28.wav";}mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpenParms);//打开音频设备;mciSendCommand(mciOpenParms.wDeviceID,MCI_PLAY,MCI_WAIT,(DWORD)(LPVOID)&PlayParms);//播放WAVE声音文件;mciSendCommand(mciOpenParms.wDeviceID,MCI_CLOSE,NULL,NULL);//关闭音频设备; printf("子线程输出数字:%d\n",si--); Sleep(1000); } return 0;}int main(int argc, char* argv[]){ int mi=0; CreateThread(NULL,0,ThreadProc,NULL,0,NULL);//创建一个线程,去执行ThreadProc函数 while(mi<100) { printf("主线程输出数字:%d\n",mi++); Sleep(1000); } return 0;}
注:其实头文件用不了那么多,为了保险我就都加上了。
另外需要嘱咐的是,在VS2010的平台上,本代码会报错,原因是缺少头文件,以及读取字符串的方式。
其中头文件需要加入#include <TCHAR.h>,读取字符串为_T("waveaudio");
两种平台上,代码均通过编译,运行成功。
- 基于VC6.0的多线程编码及音频读取
- VC6.0下select+多线程基于TCP的网络通信
- 基于VC6.0+WDK的环境搭建及简单实例
- log4cxx基于VC6.0的编译及使用
- 音频信号的数字化及压缩编码
- VC6.0多线程的问题
- vc6.0:中文字串的读取
- 音频基础知识及编码原理
- 音频基础知识及编码原理
- 音频基础知识及编码原理
- 音频基础知识及编码原理
- 音频基础知识及编码原理
- 音频基础知识及编码原理
- Web.config 的读取及编码设置
- 字符编码及文件读取的基础知识
- 音频编码的种类
- 基于vc6.0的DLL编程实现
- 基于VC6.0的DLL开发
- 输出两个整数中的最大值
- 帮帮忙
- 如何去写 Android init.rc (Android init language)
- Oracle常用的数据字典
- Strategy模式
- 基于VC6.0的多线程编码及音频读取
- c++中#prsgma once与#ifndef
- 程序人生-7-浪潮之巅
- Mac下使用Xquartz连接CentOS的Xdm服务器
- printf函数十六进制格式化输出并且2字节对齐
- python web开发初探
- 使用NDCG评估关键词推荐系统的相关性
- How to recover SA password on Microsoft SQL Server 2008 R2
- 智力题攻略——推理类