MFC添加游戏背景音乐

前一阵在给基于MFC的一个小游戏添加背景音乐的时候,刚开始是准备new一个新线程,但是在参考了一些资料与教程之后,决定采用MCI这个API,开始使用的是winmm.lib接口,使用mciSendString()函数调用,说到这点,确实很坑,网上的教程说少部分音频不能播放,很不幸,我就是那一部分,在尝试了数次时候,果断换接口,使用Vfw32.lib接口,用MCIWndCreate()函数播放,使用MCIWndDestroy()停止。

void CMyTetrisView::OnOpenMusic()
{
    // TODO:  在此添加命令处理程序代码
    Invalidate(FALSE);
    int m_iMusicTime = 0;

    CString s = "res\\1.mp3";
    CFileFind fFind;
    if (!fFind.FindFile(s))
    {
        KillTimer(ID_Open_Music);
        return;
    }
    if (h_iMusicWnd) MCIWndDestroy(h_iMusicWnd);
    h_iMusicWnd = MCIWndCreate(NULL, NULL, WS_MINIMIZE, s);
    //SetMusicPower(Glb().m_iSound); //设置音量 
    m_iMusicTime = MCIWndGetLength(h_iMusicWnd);
    SetTimer(ID_Open_Music, m_iMusicTime, NULL);//OnTimer内设置循环 
    MCIWndSetRepeat(h_iMusicWnd, TRUE);
    MCIWndPlay(h_iMusicWnd);
}


void CMyTetrisView::OnStopMusic()
{
    // TODO:  在此添加命令处理程序代码
    MCIWndDestroy(h_iMusicWnd);
    Invalidate(FALSE);
}

ps:需要添加头文件 #include “Vfw.h”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值