zoukankan      html  css  js  c++  java
  • C++ Builder播放铃声

    今天在给软件添加提示音的时候,发现以前可以使用的代码不起作用了,搞了半天才发现是资源文件内容格式写错了。

    比较好一点的做法如下:

    rc文件内容:

      

    OK wav "F:/OK.WAV"

    使用代码如下:

    #include <mmsystem.h>  

    #pragma resource "***.res"  =>(**为你自己的资源名称)

    
    

    //装入Wav文件
    HRSRC reshandle = FindResource(HInstance,soundName,__T("WAV"));
    if (reshandle != NULL) {
    HGLOBAL hglobal = LoadResource(HInstance, reshandle);

    
    

    if (hglobal != NULL) {
    const void* wav_handle = LockResource(hglobal);
    //播放Wav文件,由于Wav文件装载在内存中,sndPlaySound函数要用SND_MEMORY参数
    if (wav_handle != NULL) {
    sndPlaySound((wchar_t*)wav_handle, SND_MEMORY | SND_NODEFAULT | SND_SYNC);
    UnlockResource(hglobal);
    }

    
    

    FreeResource(hglobal);
    }
    }

     

     这样就没问题了,ヾ(◍°∇°◍)ノ゙

    二、打开、播放、暂停、关闭音乐

    
    

    //加载音乐
    void MCIVoiceOpen()
    {
    mciSendString(__T("open ./Sounds/bgm.mp3 alias bgm"), NULL, 0, NULL);

    
    

    }

    
    

    //播放音乐
    void MCIVoiceStart()
    {
    mciSendString(__T("play bgm"), NULL, 0, NULL);
    }

    
    

    //停止播放音乐
    void MCIVoiceStop()
    {
    mciSendString("stop bgm", NULL, 0, NULL);
    }

    
    

    //关闭音乐播放
    void MCIVoiceClose()
    {
    mciSendString("close bgm", NULL, 0, NULL);
    }

     
  • 相关阅读:
    Bzoj1027 [JSOI2007]合金
    Bzoj4318 OSU!
    Bzoj3931 [CQOI2015]网络吞吐量
    Bzoj3551 [ONTAK2010]Peaks加强版
    Bzoj3545 [ONTAK2010]Peaks
    Bzoj4031 [HEOI2015]小Z的房间
    Bzoj3613 [Heoi2014]南园满地堆轻絮
    Bzoj4516 [Sdoi2016]生成魔咒
    HDU1847 Good Luck in CET-4 Everybody!
    HDU1846 Brave Game
  • 原文地址:https://www.cnblogs.com/Master-Qi/p/13967802.html
Copyright © 2011-2022 走看看