C语言PlaySound函数使用方法

下面是关于C语言PlaySound函数使用方法的完整攻略。

什么是PlaySound函数?

PlaySound函数是Windows系统提供的一个API函数,它可以播放.wav、.mid等音频文件。

PlaySound函数的语法格式

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

其中:

  • pszSound:指定要播放的音频文件的路径或者别名,如果是路径,则需要加上后缀名;
  • hmod:指定音频数据所在的模块句柄,如果不需要使用可以传入NULL
  • fdwSound:指定播放方式,可以通过多个常量值进行组合,主要有以下三种:

  • SND_FILENAME:指定pszSound参数为一个文件名;

  • SND_RESOURCE:指定pszSound参数为一个ID号;
  • SND_ASYNC:异步播放,即立即播放而不等待。

使用方法

播放本地音频文件

以下是一个示例,演示如何播放本地的一段.wav文件。

#include <Windows.h>
#include <MMSystem.h>

int main() {
    PlaySound(TEXT("C:\\PingFang.wav"), NULL, SND_FILENAME);
    return 0;
}

其中,TEXT是为了保证在unicode和ansi编码下可以正确使用。SND_FILENAME指定了音频路径为C盘根目录下的PingFang.wav文件。

播放系统内置声音

以下示例演示如何播放Windows系统已经内置的提示音(消息通知的那种声音)。

#include <Windows.h>
#include <MMSystem.h>

int main() {
    PlaySound(TEXT("SystemAsterisk"), NULL, SND_ALIAS);
    return 0;
}

其中,SND_ALIAS表示要播放的声音文件路径不是一个文件名,而是一个别名。

注意点

  • 如果在编译阶段出现找不到播放器的错误,需要添加“winmm.lib”库文件。
  • 如果出现格式不支持的错误,需要安装一些音频解码器。
  • 一般情况下直接使用SND_SYNC参数,让程序同步等待歌曲结束。

希望以上攻略能够对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言PlaySound函数使用方法 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • jQuery 开发之EasyUI 添加数据的实例

    EasyUI 添加数据的实例 本文将详细讲解如何使用 jQuery EasyUI 框架实现添加数据的功能。 1.准备环境 首先需要在网站中引入 EasyUI 的相关资源文件: <head> <meta charset="UTF-8"> <title>EasyUI 添加数据的实例</title&gt…

    other 2023年6月27日
    00
  • 从C语言过渡到C++之基本变化

    从C语言过渡到C++需要理解两条基本变化:面向对象编程和类的概念。 面向对象编程 C++是一种面向对象编程语言,C语言则不是。面向对象编程将对象作为程序的基本单元,程序员利用面向对象编程语言构造出对象模型,运用特定的方法在对象之间传递消息和调用方法。对象的属性和方法封装在类中,类可以看作是对对象的模板定义。C++提供类的概念,而C语言则需要程序员自行实现一些…

    other 2023年6月26日
    00
  • jquery表格

    什么是jQuery表格? jQuery表格是一种用于在网页上显示数据工具,它可以将数据以表格的形式展示出来,并提供了一些常用的功能,如排序、分页、搜索等。 jQuery表格的使用 使用jQuery表格需要引入jQuery库和jQuery表格插件。以下是使用jQuery表格的步骤: 步骤1:引入jQuery库和jQuery表格插件 首先,需要在HTML文件中引…

    other 2023年5月7日
    00
  • sql server 2005中使用with实现递归的方法

    利用WITH和递归公用表达式(Common Table Expressions, CTE),可以在SQL Server 2005中使用递归查询。递归查询是一种常见的数据查询方式,在处理层级结构或树状数据时,非常有用。下面是实现递归查询的详细步骤: 创建递归公用表达式,并定义初始查询语句。 以查询公司组织架构为例,假设公司存在一个员工表格,表格结构如下: CR…

    other 2023年6月27日
    00
  • JavaScript本地存储实现用户名存储案例

    要实现JavaScript本地存储,可以使用浏览器提供的localStorage对象。该对象可以存储键值对,在页面刷新甚至关闭浏览器后依然可以保留数据。 下面是实现一个用户名存储的案例,步骤如下: 步骤一:检查浏览器是否支持localStorage对象 首先检查浏览器是否支持localStorage对象。可以使用以下代码: if (typeof(Storag…

    other 2023年6月27日
    00
  • ES6学习之变量的两种命名方法示例

    当涉及到ES6学习中的变量命名方法时,以下是一个完整的攻略,其中包含两个示例说明。 … 变量命名方法 在ES6中,有两种常用的变量命名方法:let和const。 let命名方法 let关键字用于声明一个块级作用域的变量。它的作用范围限定在当前的代码块内。 以下是一个示例,展示了如何使用let声明变量: let name = \"John\&qu…

    other 2023年8月10日
    00
  • java防盗链在报表中的应用实例(推荐)

    介绍 Java防盗链是一种防止他人通过恶意手段访问你的网站资源的技术。在报表中的应用实例中,Java防盗链可以保护报表数据和图表资源,确保只有有访问权限的用户才能访问相关数据和图表资源,起到保护数据安全的作用。 实现方法 首先,我们需要在Java中开发一个防盗链的Servlet,以此来处理请求。我们可以在Servlet中判断请求头Referer,如果Refe…

    other 2023年6月27日
    00
  • alpha-beta搜索算法

    Alpha-Beta搜索算法攻略 Alpha-Beta搜索算法是一种用于博弈树搜索的优化算法,可以在搜索树中剪枝,从而减少搜索的时间和空间复杂度。本文将介绍Alpha-Beta搜索算法的原理、实现和示例,并提供两个示例说明。 1. 原理 Alpha-Beta搜索算法是一种基极小极大值搜索的优化算法。在搜索树中,每个节点都有一个极大值和一个极小值,表示当前玩家…

    other 2023年5月7日
    00
合作推广
合作推广
分享本页
返回顶部