• 大小: 3.33MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-13
  • 语言: 其他
  • 标签: Mid音频  

资源简介

实现游戏里面的Mid音频的播放,适合2D游戏的背景音乐,用的时候把Midi.h和Midi.cpp复制到自己的项目里面,播放的时候先建一个类Midi Mymid,然后Mymid.Close();Mymid.Open("dat//**.mid");Mymid.Play();就可以了

资源截图

代码片段和文件信息

// Midi.cpp
#include “stdafx.h“
#include “Midi.h“

CMidi::CMidi()
{

m_nDevices = midiOutGetNumDevs();
m_bOpened = m_bPaused = m_bPlaying = FALSE;
m_wDeviceID = 0;

}

CMidi::~CMidi()
{

Close();

}

int CMidi::DeviceCount( void )
{

return( m_nDevices );

}

BOOL CMidi::Open( const char *lpszFilename )
{

if( !m_bOpened ){

// Initialize member variables.
m_bPaused = m_bPlaying = FALSE;
m_wDeviceID = 0;

// See if the file exists.
CFileStatus Status;
if( !CFile::GetStatus( lpszFilename Status ) )
{
return( FALSE );
}
// Open the device.
MCI_OPEN_PARMS OpenParms;
OpenParms.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_SEQUENCER;
OpenParms.lpstrElementName = (LPCSTR) lpszFilename;
OpenParms.wDeviceID = 0;
if( mciSendCommand( NULL MCI_OPEN MCI_WAIT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT (DWORD)(LPVOID) &OpenParms ) )
return( FALSE );
m_wDeviceID = OpenParms.wDeviceID;
m_bOpened = TRUE;

// Set the time format to milliseconds.
MCI_SET_PARMS SetParms;
SetParms.dwTimeFormat = MCI_FORMAT_MILLISECONDS;
if( mciSendCommand( m_wDeviceID MCI_SET MCI_SET_TIME_FORMAT (DWORD)(LPVOID) &SetParms ) )
{
Close();
return( FALSE );
}
mciSendCommand( m_wDeviceID MCI_SEEK MCI_SEEK_TO_START NULL );
return( TRUE );
}

return( FALSE );

}

BOOL CMidi::Close( void )
{

if( m_bOpened ){

// Stop the playing and close the device.
if( m_bPlaying || m_bPaused )
mciSendCommand( m_wDeviceID MCI_STOP NULL NULL );
mciSendCommand( m_wDeviceID MCI_CLOSE NULL NULL );

// Clear member variables.
m_bOpened = m_bPaused = m_bPlaying = FALSE;
m_wDeviceID = 0;

return( TRUE );
}

return( FALSE );

}

BOOL CMidi::Play( void )
{

if( m_bOpened ){

// Issue the ‘play‘ command.
MCI_PLAY_PARMS PlayParms;
PlayParms.dwCallback = NULL;
PlayParms.dwFrom = ( ( GetMinutes() * 60 ) + GetSeconds () ) * 1000;
if( mciSendCommand( m_wDeviceID MCI_PLAY MCI_FROM (DWORD)(LPVOID) &PlayParms ) )
return( FALSE );

// Set our class members so we know that
// we‘re currently playing.
m_bPlaying = TRUE;
m_bPaused = FALSE;

return( TRUE );
}

return( FALSE );

}

BOOL CMidi::Stop( void )
{

if( m_bOpened && m_bPlaying ){
// Issue the ‘stop‘ command.
mciSendCommand( m_wDeviceID MCI_STOP NULL NULL );
// Issue the command that seeks back to the start.
mciSendCommand( m_wDeviceID MCI_SEEK MCI_SEEK_TO_START NULL );
m_bPaused = m_bPlaying = FALSE;

return( TRUE );
}

return( FALSE );

}

BOOL CMidi::Pause( void )
{

if( m_bOpened && m_bPlaying ){

// Pause the CD.
MCI_PLAY_PARMS PlayParms;
if( mciSendCommand( m_wDeviceID MCI_PAUSE 0 (DWORD)(LPVOID) &PlayParms ) )
return( FALSE );

m_bPaused = TRUE;

return( TRUE );
}

return( FALSE );

}

BOOL CMidi::IsPlaying( void )
{

if( m_bOpened ){

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      21222  2013-01-21 21:35  播放Mid音频文件\Debug\Midi.obj

     文件    2125896  2013-01-21 21:35  播放Mid音频文件\Debug\MidPlayer.exe

     文件    2507068  2013-01-21 21:35  播放Mid音频文件\Debug\MidPlayer.ilk

     文件      18430  2013-01-21 21:35  播放Mid音频文件\Debug\MidPlayer.obj

     文件    5461380  2013-01-20 21:59  播放Mid音频文件\Debug\MidPlayer.pch

     文件    4121600  2013-01-21 21:35  播放Mid音频文件\Debug\MidPlayer.pdb

     文件       8732  2013-01-20 21:59  播放Mid音频文件\Debug\MidPlayer.res

     文件      37401  2013-01-21 21:35  播放Mid音频文件\Debug\MidPlayerDlg.obj

     文件     106006  2013-01-20 21:59  播放Mid音频文件\Debug\StdAfx.obj

     文件     214016  2013-01-21 21:35  播放Mid音频文件\Debug\vc60.idb

     文件     372736  2013-01-21 21:35  播放Mid音频文件\Debug\vc60.pdb

     文件       7874  2013-01-21 21:35  播放Mid音频文件\Midi.cpp

     文件        631  1997-11-28 15:09  播放Mid音频文件\Midi.h

     文件      21136  2013-01-20 22:00  播放Mid音频文件\MidPlayer.aps

     文件       1306  2013-01-21 21:34  播放Mid音频文件\MidPlayer.clw

     文件       2101  2013-01-21 21:35  播放Mid音频文件\MidPlayer.cpp

     文件       4345  1999-02-23 15:57  播放Mid音频文件\MidPlayer.dsp

     文件        543  1999-02-23 14:52  播放Mid音频文件\MidPlayer.dsw

     文件       1357  1999-02-23 14:52  播放Mid音频文件\MidPlayer.h

     文件      58368  2013-01-21 21:35  播放Mid音频文件\MidPlayer.ncb

     文件      50688  2013-01-21 21:35  播放Mid音频文件\MidPlayer.opt

     文件       1303  2013-01-21 21:35  播放Mid音频文件\MidPlayer.plg

     文件       5558  1999-02-23 19:24  播放Mid音频文件\MidPlayer.rc

     文件       5235  2013-01-21 21:34  播放Mid音频文件\MidPlayerDlg.cpp

     文件       1553  1999-02-23 19:12  播放Mid音频文件\MidPlayerDlg.h

     文件       3633  1999-02-23 14:52  播放Mid音频文件\ReadMe.txt

     文件       1078  1999-02-23 14:52  播放Mid音频文件\res\MidPlayer.ico

     文件        401  1999-02-23 14:52  播放Mid音频文件\res\MidPlayer.rc2

     文件        871  1999-02-23 14:54  播放Mid音频文件\resource.h

     文件        211  1999-02-23 14:52  播放Mid音频文件\StdAfx.cpp

............此处省略7个文件信息

评论

共有 条评论

相关资源