#include <stdio.h>
#include <conio.h> // key input
#include <windows.h> // sndPlaySound
#include <string.h> // strcpy, strcat
#pragma comment (lib ,"winmm.lib") // winmm.lib(windows multimedia) link
// Project -> Settings -> Link 탭 -> Object/Library modules : -> winmm.lib
int key_input();
void out_sound(int select);
char *sound_file[]={"SONG01.wav","SONG02.wav","SONG03.wav","SONG04.wav","SONG05.wav","SONG06.wav","SONG07.wav","SONG08.wav"}; // 음원파일명.
char sound_route[]="C:\\Users\\승환\\Desktop\\Term Project\\믐원\\"; // 음원파일 경로
void main(void){
int select=0;
printf("\t\t\t Term Project 피아노 \n\n\n\n");
printf("\t 1.도 2.레 3.미 4.파 5.솔 6.라 7.시 8.도 : exit(s)\n");
for(;;) {
select = key_input();
if(select >= 49 && select <= 56) // 눌린 키보드 값이 1~8 사이라면
{
out_sound(select-49); // 0~8 의 값을 넘긴다
}
else if(select == 83 || select == 115) // 's' 또는 'S'
{
break;
}
}
printf("\n수고하셨습니다.\n");
}
void out_sound(int select){
char route_temp[200]=""; // 임시변수.
strcpy(route_temp,sound_route);
strcat(route_temp,sound_file[select]); // 두문자열을 하나의 문자열로.
sndPlaySound(route_temp,SND_ASYNC); // 사운드 플레이.
}
int key_input(){
int input_key;
if(kbhit())//key입력 검사
{
input_key = getch();
return (input_key); //키값을 리턴
}
return 0;
}
#pragma comment (lib ,"winmm.lib") // winmm.lib(windows multimedia) link
윈도우멀티미디어를 사용하기 위해선....링크해줘야해요! 물론 옵션에서 추가종속성
부분에도 추가해주어야합니다.! 이유는 확실히 알아볼게요!
-sndPlaySound(route_temp, SND_ASYNC)
매우 짧고 이 프로그램의 중추가 되는 API입니다.
우선 필요한 값으로는 '무엇을'과 '어떻게'입니다.
route_temp 는 입력한 숫자를 해당 디렉터리에 있는 파일과 매칭
SND_ASYNC는 음원을 재생하는데, 비동기식으로 재생을 합니다.
ASYNC를 쓰지않으면 음원재생이 끝날때까지 다른 명령을 할 수 없습니다.
쓰게 된다면 화음을 사용할 수 없는데.... 아직 화음 문제를 해결하지 못했습니다.
동영상은.... 찍을줄 몰라서 안넣었구.... 다음에 기회되면 올리겠습니다!