zoukankan      html  css  js  c++  java
  • 关于背景音乐(音效)的播放

    之前用的BGM播放函数一直是

    BOOL PlaySound(
      LPCTSTR pszSound,
      HMODULE hmod,
      DWORD fdwSound
    );

    后来在一个俄罗斯方块游戏里我想加入一些音效,就试着在PlaySound()播放背景音乐的时候在另一个函数里又调用了一个PlaySound,

    结果声音就中断了,原来的音乐哑巴了,新增的也不唱,我才接着去请教万能的度娘,发现PlaySound函数确实局限性很大,只能用wav格式不说,

    完全不能满足我想让音效丰富的求(装)知(逼)欲啊!完全就是给新手发糖的~

      于是我发现了一个神奇的API:mciSendString

    MCIERROR mciSendString(
          LPCTSTR lpszCommand,    //MCI命令字符串
          LPTSTR lpszReturnString, //存放反馈信息的缓冲区
          UINT  cchReturn,     //缓冲区的长度
          HANDLE hwndCallback    //回调窗口的句柄,一般为NULL
        ); //若成功则返回0,否则返回错误码。

    例:mciSendString(L"play music.mp3", NULL, 0, NULL);

    链接来自百度百科https://baike.baidu.com/item/mciSendString/2905255?fr=aladdin

    好多命令没试过,而且没具体做过东西好多地方也不太理解,先直接贴一下MCI命令打个卡,方便下次用到的时候去查

    使用MCI设备一般包括打开、使用和关闭三个过程,常用的MCI命令有:

     

        open      打开设备

     

        close      关闭设备

     

        play        开始设备播放

     

        stop              停止设备的播放或记录

     

        record             开始记录

     

        save             保存设备内容

     

        pause              暂停设备的播放或记录

     

        resume           恢复暂停播放或记录的设备

     

        seek             改变媒体的当前位置

     

        capacility              查询设备能力

     

        info               查询设备的信息

     

        status              查询设备状态信息

     

    MCI的大部分命令可以控制不同的媒体设备,但其中record和save命令并不是所有MCI设备都可以使用。

     

    MCI命令的使用是很随意的,只要先打开,最后关闭,中间可以随意调用各种命令。

    最后再贴一个官方链接https://docs.microsoft.com/zh-cn/windows/desktop/Multimedia/multimedia-command-strings

     
  • 相关阅读:
    程序员常去的14个顶级开发社区
    为何技术领域中女程序员较少?
    为何技术领域中女程序员较少?
    为何技术领域中女程序员较少?
    关于HTTP和HTTPS的区别
    关于HTTP和HTTPS的区别
    关于HTTP和HTTPS的区别
    Coupled model
    java和javascript日期详解
    Java 线程总结(十四)
  • 原文地址:https://www.cnblogs.com/WinonaJia/p/9231305.html
Copyright © 2011-2022 走看看