- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
双缓冲播放,混音
#include windows.h
#includemmsystem.h
#includestdlib.h
#includestdio.h
#includemath.h
#pragma comment(lib,winmm.lib)
DWORD CALLBACK waveOutProc(HWAVEOUT hwo,UINT uMsg,DWORD dwInstance,DWORD dwParam1,DWORD dwParam2);
DWORD Priority_Handle(DWORD music_Priority,DWORD data_id);
DWORD INSERT_MUSIC(short *data1, DWORD data_size, short *data, DWORD data_id);
typedef struct ret
{
DWORD data_size;
short *data;
}Ret_Value;
Ret_Value data2,data3,data4,data5,data6,data7;
int n = 0 ;
int new_n = 0;
int maxn = 0;
char *lpdata;
DWORD reset = 0;
DWORD music_curr_n[6]={0,0,0,0,0,0};//6种音乐当前n为多少
DWORD music_insert_n[6]={0,0,0,0,0,0};//记录何时插入music
DWORD music_number[6]={0,0,0,0,0,0};//记录音乐连续播放次数(未播完情况下播放同一首音乐)
DWORD Priority[7]={0,0,0,0,0,0,0};//前六个元素记录每首加入音乐的优先级(第一个元素记录第一首音乐的优先级),第个元素记录同一时刻有几种音乐在插入
DWORD music_Priority[6]={2,1,3,4,5,6};//音乐的优先级
DWORD pertimedata = 960;
DWORD data_size1;//背景音乐data数据所占的字节数
#define insert_suc 2
#define insert_fail 3
void main()
{
HWAVEOUT hWaveOut;
FILE *fp1,*fp2,*fp3,*fp4,*fp5,*fp6,*fp7,*fp8;
short *data1;//指针指向背景音乐数据
DWORD w,i,j,dwRiffSize;
WAVEFORMATEX waveformat;
WAVEHDR wavehdr1,wavehdr2;
WORD nChannels=0;
DWORD nSamplesPerSec=0;
DWORD nAvgBytesPerSec=0;
WORD nBlockAlign = 0;
WORD wBitsPerSample = 0;
MMRESULT mr = 0;
char id_1[5]=RIFF;
char id_2[5]=WAVE;
char id_3[5]=fmt ;
char id_4[5]=data; // 5个字节存储空间存储RIFF和\0,这个是为方便利用strcmp
short format_tag, channels, block_align, bits_per_sample;
unsigned long format_length, sample_rate, avg_bytes_sec; // 32位数据
memset(data2, 0 ,sizeof(Ret_Value));
memset(data3, 0 ,sizeof(Ret_Value));
memset(data4, 0 ,sizeof(Ret_Value));
memset(data5, 0 ,sizeof(Ret_Value));
memset(data6, 0 ,sizeof(Ret_Value));
memset(data7, 0 ,sizeof(Ret_Value));
//fmt:数据初始化
format_length=16;
format_tag=1;
channels= 1;
sample_rate =4000;
avg_bytes_sec=16000;
block_align=2;
bits_per_sample=16;
w=i=j=0;
//读取文件
fp1 = fopen(D:\\My Documents\\学校\\22\\001.wav,rb);
fp2 = fopen(D:\\My Documents\\学校\\11\\001.wav,rb)
您可能关注的文档
- 卡介苗能治疗癌症的作用机理.ppt
- 卡夫卡寓言集.doc
- 卜蜂莲花企业介绍.ppt
- 卡夫新产品开发流程.ppt
- 卡拉OK活动流程完整版.doc
- 卡特关键指标提升解决方案.doc
- 卡特仓储与物流信息漫谈.doc
- 卡萨布兰卡performance.ppt
- 卡诺萨酒庄简介.doc
- 卡车传动系介绍张志欧.ppt
- 2024年05月山东交通职业学院招考聘用博士研究生50人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽芜湖市弋江区老年学校(大学)工作人员特设岗位公开招聘2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东东营河口区教育类事业单位招考聘用22人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东交通职业学院招考聘用100人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东威海职业学院招考聘用高层次人才2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽石台县事业单位工作人员33人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东滨州市博兴县事业单位公开招聘考察笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽蚌埠固镇县湖沟镇选聘村级后备干部7人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东省安丘市教育和体育局所属事业单位学校公开2024年招考232名工作人员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东临沂临港经济开发区工作人员(5人)笔试历年典型题及考点剖析附带答案含详解.docx
文档评论(0)