조회 수 492 추천 수 1 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
예 일단 프로젝트에 winmm.lib 이라는 라이브러리를 추가한 후에, 다시 프로젝트에서 MMC.H 파일과 MMC.CPP 파일을 만듭니다.

그리고 MMC.H 파일에 다음을 삽입해주세요
#pragma once

#include "StdAfx.h"
#include <mmsystem.h>

class playMedia {
        protected:
                MCIDEVICEID wDeviceID;
        public:
                void ShowError(DWORD err);
                BOOL play(CString file);
                BOOL play();
};

그리고 MMC.CPP 파일에는 다음을 삽입해주세요
#include "StdAfx.h"
#include "MMC.H"

BOOL playMedia::play(CString file)
{
    DWORD dwReturn;
    MCI_OPEN_PARMS mciOpenParms;
    MCI_PLAY_PARMS mciPlayParms;    
    
    mciOpenParms.lpstrDeviceType = "MPEGVideo";
    mciOpenParms.lpstrElementName = file;
    if( dwReturn = mciSendCommand(NULL,MCI_OPEN,MCI_NOTIFY | MCI_OPEN_TYPE | MCI_OPEN_ELEMENT | MCI_WAIT,(DWORD)&mciOpenParms))
    {
        ShowError(dwReturn);
        return false;
    }
    
    wDeviceID = mciOpenParms.wDeviceID;
    //HWND hWnd = CWnd::FromHandle(CWindow::GetWindow(GW_OWNER));
    mciOpenParms.dwCallback = (DWORD)AfxGetMainWnd()->GetSafeHwnd();
    mciPlayParms.dwCallback = (DWORD)AfxGetMainWnd()->GetSafeHwnd();

    if(dwReturn = mciSendCommand(wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)&mciPlayParms))
    {
        ShowError(dwReturn);
        mciSendCommand(wDeviceID,MCI_CLOSE,0,NULL);
        return false;
    }
    return true;
}

void playMedia::ShowError(DWORD err)
{
    char buf[256];
    mciGetErrorString(err,buf,sizeof(buf));
    AfxMessageBox(buf,MB_OK | MB_ICONEXCLAMATION);
}

그 후에 음악을 재생시킬 파일에 맨위에 다음을 입력해주세요
playMedia g_Media;

그리고 음악을 재생시킬 함수 안에는
m_Media.play(" I do - 비.mp3");
I do - 비.mp3 안에 재생시키실 파일 이름을 적어주시면 됩니다.~

그리고 DirectX에서 재생하는 방법은 약간 저수준 방식입니다.
덕분에 지지직 거리는 음이나, 노이즈등 여러 효과를 넣을 수 있게 되었죠.
DirectX에서는 사운드 버퍼라는 것을 통해 사용자가 직접 음악 파일의 내용을 불러와서 그 안에 채워서 재생하는 방식입니다.
물론 현재 제가 가르쳐드린 방식도 그런 방식이지만, 그 내부 처리는 생략한 것 입니다.

그럼 즐거운 프로그래밍 하세요 ~//
?

List of Articles
번호 제목 글쓴이 날짜 조회 수
387 변수 - 스크립트의 수 ? 덩키동크 2005.06.07 321
386 xp 질문했던거 또질문 -_-;; メIllusion。 2005.06.07 150
385 xp 질문했던거 또질문 -_-;; Mr.kim 2005.06.07 168
» WINAPI 에서.. 소리재생하는 방법.. 하앙e 2005.06.07 492
383 제발 몇가지 답변좀요!!!ㅜ,.ㅜ 이클립티스 2005.06.06 255
382 대화창 투명화좀. 늑대소년 2005.06.06 133
381 대화창 투명화좀. 뱀신의신교 2005.06.06 159
380 RPGXP로 이런 시스템 가능한가요>? Mr.kim 2005.06.06 388
379 RPGXP로 이런 시스템 가능한가요>? 꼬락서니 2005.06.06 618
378 대화할떄의 글씨색 바꾸는 방법좀... 칼브 2005.06.06 473
377 Dunky's answer ! 덩키동크 2005.06.06 150
376 가끔씩... Tv에서... 내마음블루 2005.06.06 513
375 Dunky's answer ! 덩키동크 2005.06.06 190
374 또 xp 버그인듯한 발견 file Mr.kim 2005.06.06 180
373 XP문제...!! 도와주세요 ㅠ.ㅠ メIllusion。 2005.06.06 167
372 XP문제...!! 도와주세요 ㅠ.ㅠ 야라 2005.06.06 205
371 레벨업시 스텟올리는 스크립트 세이브 버그 질문.. ЁЖЙ 2005.06.06 347
370 대화할떄의 글씨색 바꾸는 방법좀... 덩키동크 2005.06.06 273
369 원엠프 방송하는법 자세히 가르쳐 주십쇼, 샤아 2005.06.06 630
368 원엠프 방송하는법 자세히 가르쳐 주십쇼, KBOY∮ 2005.06.06 861
Board Pagination Prev 1 ... 418 419 420 421 422 423 424 425 426 427 ... 442 Next
/ 442


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)