如题,我想在自己的游戏里弄些音效,可以淡入淡出
应该怎么做?用什么函数最好?
应该怎么做?用什么函数最好?
解决方案 »
- WTL8.1的例子在VS2008编译的时候不通过
- Outlook导航界面
- 问一下:如何将SDI的窗口静态切分成如下形状……
- 问了几个问题都没有得到满意答复,这次问个简单的文件问题,还是来者有分!在线等!
- 请教大家:"点击某个Buttonhou后在CEdit上显示一行字符"在VC++6里应怎样实现?
- SkinMagic使用中的疑惑
- 为什么Release 与 Debug版本下自定义的CFileDialog不一样?
- 求。。如何在属性表里的标题旁加入图标,以下方式为何错误??
- 虚拟USB存储设备
- 如何获得window中某一窗口的句柄?
- ifstream流输入带文字路径的文件时出错
- COM的dlldatax.h文件如何生产
{
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 );
}
MCI_DGV_SETAUDIO_PARMS mciSetAudioPara;
mciSetAudioPara.dwCallback = (DWORD)GetSafeHwnd();
mciSetAudioPara.dwItem = MCI_DGV_SETAUDIO_VOLUME;
mciSetAudioPara.dwValue = 100; //此处就是音量大小 (0--1000)
mciSendCommand(m_dwCount, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM,
(DWORD)(LPVOID)&mciSetAudioPara);
你试试
waveOutSetVolume只能控制波形文件啊........to 3楼:
我的库里面没MCI_DGV_SETAUDIO_PARMS这个结构体啊
我用的是VS2008编译器
http://blog.csdn.net/lqg1999/archive/2009/03/19/4006047.aspx
遇到了一个这个问题;
pControl->Run(); //开始播放
_getch();
pControl->Pause(); //暂停
_getch();
pControl->Run(); //继续
_getch();
pControl->Stop(); //停止(和pause效果一样)
_getch();
pControl->Run(); //并没有重新开始,继续接着播放
_getch();
怎么Stop效果和Pause一样啊,并不会将播放复位啊!!!
请大家帮下忙啊!