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日

相关文章

  • 基于postman实现http接口测试过程解析

    基于 Postman 实现 HTTP 接口测试过程解析 简介 Postman 是一个非常流行的 API 开发和测试工具,它可以用于在开发 API 的不同阶段进行测试、调试以及文档生成。本文将详细介绍如何使用 Postman 进行 HTTP 接口测试。 准备工作 在使用 Postman 进行接口测试之前,需要准备以下工作: 安装 Postman ,可以从官网上…

    other 2023年6月27日
    00
  • C语言中求余运算符的使用解读

    当我们在C语言中使用求余运算符时(%),会得到两个数相除后的余数。下面是关于C语言中求余运算符的使用解读的完整攻略: 什么是求余运算符? 求余运算符是一种二元运算符,通常表示为百分号(%),用于计算两个数相除后的余数。 求余运算符的使用方法 我们可以使用如下语法来使用求余运算符: remainder = dividend % divisor; 其中,divi…

    other 2023年6月27日
    00
  • SpringBoot2零基础到精通之JUnit 5与指标监控

    SpringBoot2零基础到精通之JUnit 5与指标监控攻略 简介 本攻略旨在帮助零基础的开发者从头开始学习并掌握使用JUnit 5进行单元测试以及使用指标监控来优化Spring Boot 2应用程序的技能。 目录 准备工作 JUnit 5入门 使用JUnit 5进行单元测试 指标监控简介 使用指标监控优化Spring Boot 2应用程序 1. 准备工…

    other 2023年7月28日
    00
  • python中的type,元类,类,对象用法

    Python中的type、元类、类、对象用法详解 type 在Python中,type是一个内置函数,用于获取对象的类型。它可以用于判断对象的类型,也可以用于动态创建类。 示例1:判断对象的类型 x = 5 print(type(x)) # 输出:<class ‘int’> y = \"Hello\" print(type(y…

    other 2023年10月15日
    00
  • JS组件封装之监听localStorage的变化

    下面我来详细讲解一下“JS组件封装之监听localStorage的变化”的完整攻略。 一、需求分析 在开发网页应用的过程中,我们经常需要将数据保存在本地,常用的方法是使用浏览器提供的localStorage。但是,由于localStorage是浏览器级别的存储,所以当我们在不同的页面中操作localStorage时,需要实时更新其他页面中的数据。因此,我们需…

    other 2023年6月25日
    00
  • FreeRTOS实时操作系统信号量基础

    下面我将通过以下几个方面,来详细讲解“FreeRTOS实时操作系统信号量基础”的完整攻略: 信号量是什么 FreeRTOS的信号量及其基础API 信号量的使用示例说明 进一步扩展: 二值信号量和计数信号量 1. 信号量是什么 信号量是一种基本的同步机制,在多任务并发执行、共享资源时起到重要作用。它可以控制多个任务对共享资源的访问顺序,保证每个任务能够按照一定…

    other 2023年6月27日
    00
  • 集中管理多台远程计算机

    集中管理多台远程计算机的完整攻略 介绍 随着互联网的普及,越来越多的企业需要管理多台远程计算机,以提高工作效率。本文将讲解如何通过一些工具和技术,实现集中管理多台远程计算机的完整攻略。 必备工具 集中管理多台远程计算机需要使用到以下两个工具: 远程桌面连接(Windows) SSH(Linux) 远程桌面连接 如果您需要远程连接到 Windows 计算机,可…

    other 2023年6月27日
    00
  • js中Image对象以及对其预加载处理示例

    JS中的Image对象用于创建图片实例,可以用于实现图片的预加载。图片预加载可以让网页在用户打开时更快地展示图片,在用户看到图片前就已经开始加载。 Image对象基本用法 var img = new Image(); // 创建Image对象 img.src = ‘image.jpg’; // 设置图片源 在这个例子中,我们创建了一个Image对象,并将源设…

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