01:
02:
03:
04:
05:
06: #include <stdio.h>
07: #include <windows.h>
08: #include <mmsystem.h>
09:
10: int InitMciDev(char* wav_file);
11: void TermMciDev();
12: int PlayMciDev();
13: int MCILength();
14:
15: int main()
16: {
17: int mLen;
18: char wav_file[] = "samp.wav";
19:
20: if(InitMciDev(wav_file)){
21: fprintf(stderr,"MCIデバイスオープン失敗\n");
22: return -1;
23: }
24:
25: mLen = MCILength();
26: if(mLen <= 0){
27: fprintf(stderr,"演奏時間取得失敗\n");
28: }
29:
30: if(PlayMciDev()){
31: fprintf(stderr,"再生にエラーが発生しました\n");
32: return -1;
33: }
34:
35: printf("**%s:\n",wav_file);
36: printf(" 演奏時間[%d]秒\n",mLen);
37: if(!mLen) mLen+=5;
38: sleep(mLen);
39: printf("**演奏終了\n");
40:
41: TermMciDev();
42: return 0;
43: }
44:
45:
46:
47: int InitMciDev(char* wav_file)
48: {
49: char cmd[256];
50: memset(cmd,0,sizeof(char)*256);
51: sprintf(cmd,"open %s type waveaudio alias wav1",wav_file);
52: return mciSendString(cmd,NULL,0,0);
53: }
54:
55:
56:
57: void TermMciDev()
58: {
59: mciSendString("stop wav1",NULL,0,0);
60: }
61:
62:
63:
64: int PlayMciDev()
65: {
66: return mciSendString("play wav1",NULL,0,0);
67: }
68:
69:
70:
71: int MCILength()
72: {
73: int ret;
74: char status[30];
75: mciSendString("set wav1 time format milliseconds",NULL,0,0);
76: ret = mciSendString("status wav1 length",status,30,0);
77: if(ret) return 0;
78: return atoi(status)/1000;
79: }