资源简介
实现游戏里面的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\MidPla
文件 2507068 2013-01-21 21:35 播放Mid音频文件\Debug\MidPla
文件 18430 2013-01-21 21:35 播放Mid音频文件\Debug\MidPla
文件 5461380 2013-01-20 21:59 播放Mid音频文件\Debug\MidPla
文件 4121600 2013-01-21 21:35 播放Mid音频文件\Debug\MidPla
文件 8732 2013-01-20 21:59 播放Mid音频文件\Debug\MidPla
文件 37401 2013-01-21 21:35 播放Mid音频文件\Debug\MidPla
文件 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音频文件\MidPla
文件 1306 2013-01-21 21:34 播放Mid音频文件\MidPla
文件 2101 2013-01-21 21:35 播放Mid音频文件\MidPla
文件 4345 1999-02-23 15:57 播放Mid音频文件\MidPla
文件 543 1999-02-23 14:52 播放Mid音频文件\MidPla
文件 1357 1999-02-23 14:52 播放Mid音频文件\MidPla
文件 58368 2013-01-21 21:35 播放Mid音频文件\MidPla
文件 50688 2013-01-21 21:35 播放Mid音频文件\MidPla
文件 1303 2013-01-21 21:35 播放Mid音频文件\MidPla
文件 5558 1999-02-23 19:24 播放Mid音频文件\MidPla
文件 5235 2013-01-21 21:34 播放Mid音频文件\MidPla
文件 1553 1999-02-23 19:12 播放Mid音频文件\MidPla
文件 3633 1999-02-23 14:52 播放Mid音频文件\ReadMe.txt
文件 1078 1999-02-23 14:52 播放Mid音频文件\res\MidPla
文件 401 1999-02-23 14:52 播放Mid音频文件\res\MidPla
文件 871 1999-02-23 14:54 播放Mid音频文件\resource.h
文件 211 1999-02-23 14:52 播放Mid音频文件\StdAfx.cpp
............此处省略7个文件信息
- 上一篇:拍卖系统jsf+ejb+jpa
- 下一篇:计算机图形学的详细论文翻译
评论
共有 条评论