티스토리 뷰

프로그래밍/API

API 사운드

에어버스 2016. 5. 7. 15:44

API 사운드

#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")

헤더와 Lib 정의 필요함.

1. 기본함수 

BOOL sndPlaySound(
  LPCTSTR 사운드파일명,
  UINT 사운드출력방식);

<출력방식>
SND_ASYNC            비동기식으로 wave파일이 실행될때 다른 작업도 동시 가능
SND_LOOP              wave파일 무한반복
SND_MEMORY         사운드가 메모리에 있음
SND_NODEFAULT     지정한 경로에 wave파일이 없어도 경고음 안나옴
SND_NOSTOP          wave파일이 실행되고 또 다른 wave파일 실핼되면 기존 wave실행을 중단
SND_SYNC              지정한 wave파일이 시랳ㅇ하는 동안 다른 작업할 수 없음

간단한 wave 형태의 사운드만 출력해주는 함수로 성공하면 TRUE 반환

플레이 중지할때는 sndPlaySound(NULL, SND_ASYNC); 를 호출한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_LBUTTONDOWN:
        sndPlaySound(L"tada.wav", SND_ASYNC | SND_LOOP); // WAV 파일 무한 반복
        break;
    case WM_RBUTTONDOWN:
        sndPlaySound(NULL, SND_ASYNC); // 중지
        break;
 
cs

2. 확장된 함수

BOOL WINAPI PlaySound(
  LPCSTR wave파일명,
  HMODULE 리소스를 가진 실행파일 핸들,
  DWORD 출력방식);

리소스 나 레지스트리에 등록된 WAV파일을 플레이 가능하도록 확장된 함수
주석처리된거 처럼 WAV파일을 직접 플레이도 가능함.

1
2
3
4
5
6
7
8
9
10
11
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_LBUTTONDOWN:
        //PlaySound(L"tada.wav", NULL, SND_ASYNC | SND_LOOP); // WAV 파일 무한 반복
        PlaySound(MAKEINTRESOURCE(IDR_WAVE), hInst, SND_ASYNC | SND_LOOP | SND_RESOURCE); // WAV 파일 무한 반복
        break;
    case WM_RBUTTONDOWN:
        PlaySound(NULLNULL, SND_ASYNC); // 중지
        break;
cs

 

HKEY_CURRENT_USER\AppEvents\EventLabels\SystemAsterisk

위 레지스트리에 등록된 WAV 플레이이

1
2
3
4
5
6
7
8
9
10
11
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_LBUTTONDOWN:
        PlaySound(L"SystemAsterisk"NULL, SND_ASYNC | SND_LOOP); // 레지스트리 등록된 WAV 파일 플레이
        break;
    case WM_RBUTTONDOWN:
        PlaySound(NULLNULL, SND_ASYNC); // 중지
        break;
 
cs

 

http://tinydew4.tistory.com/259 이외 정보

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28