조회 수 496 추천 수 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에서는 사운드 버퍼라는 것을 통해 사용자가 직접 음악 파일의 내용을 불러와서 그 안에 채워서 재생하는 방식입니다.
물론 현재 제가 가르쳐드린 방식도 그런 방식이지만, 그 내부 처리는 생략한 것 입니다.

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

  1. 쯔꾸르 mv 게임을 apk 파일로 변환했는데...

    Date2023.01.14 By박하맛 Views1330
    Read More
  2. 쯔꾸르 젖소이야기 결혼 방법좀 알려주세요...

    Date2021.12.20 By백지씨 Views2627
    Read More
  3. apk포팅 승인 어케 하나요?

    Date2021.11.29 Bygame메이커xp Views1257
    Read More
  4. Yanfly님의 Action Sequence Pack 질문드립니다

    Date2021.07.15 ByNeuromancer Views1541
    Read More
  5. 싸게 MV 를 먼저? 아니면 돈을 더 들어서라도 MZ?

    Date2021.07.06 ByXatra Views1752
    Read More
  6. RMMV - 스탯창과 대화창 변견 관련 질문입니다. (초보입니다 도움좀 주세요 ㅜㅜ)

    Date2021.01.22 Byscribble Views1553
    Read More
  7. 아오오니를 하는 사람인데요 질문 두가지가 있어요

    Date2021.01.16 By오니개무서워 Views1634
    Read More
  8. 재밌는게임

    Date2020.12.07 Byland_tnt Views1455
    Read More
  9. c언어 질문

    Date2020.11.10 By세종기항19 Views1684
    Read More
  10. 코딩 질문

    Date2020.11.08 By세종기항19 Views1539
    Read More
  11. 혹시나 물어보는데

    Date2020.11.07 By드래곤규 Views1402
    Read More
  12. 오픈보 게임 더블드래곤 리로디드 얼티네이트에 대해 궁금

    Date2020.09.09 By이부닝 Views1224
    Read More
  13. 상태이상 확률 결정

    Date2020.09.02 By스트레이보우 Views1006
    Read More
  14. 다음 인디사이드 제작대회는 언제쯤 열릴까요?

    Date2020.05.23 ByWOONAALAA Views963
    Read More
  15. xp로 제작된 어플 실행자체가 안된다는 분이 있습니다.(제생각엔 apk로 변환하는 과정에서 버전자체가 낮은 것 같습니다)

    Date2020.05.04 By라엔 Views1415
    Read More
  16. apk 포팅하는데 게임 이름이 필요합니다 뜨는데

    Date2020.05.03 Bykashu Views1350
    Read More
  17. 쯔꾸르VX Ace렉먹음 도와주세요...

    Date2020.03.22 By랖랖 Views1780
    Read More
  18. 안녕하세요

    Date2020.02.14 By청월령 Views834
    Read More
  19. 포팅 중 '게임 이름이 필요합니다' 오류

    Date2020.02.11 By아이비스 Views817
    Read More
  20. RPGMV 거리 추적

    Date2020.01.19 By정욱 Views931
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


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

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