2025-09-29
C#
00

摘要

在C#中,条件编译是一种预处理器功能,它允许开发者在编译时根据特定的条件包含或排除代码段。这种方法可以用来创建跨多个平台的代码、处理不同的编译选项,或者仅仅用来调试目的。

正文

应用场景

条件编译通常用于以下场景:

  1. 平台特定代码:当你的代码需要在多个平台(例如Windows和Linux)上运行时,你可能需要根据平台编写特定的代码。
  2. 功能特性切换:在产品的不同版本之间启用或禁用特定功能。
  3. 调试与发布:在调试版本中包含额外的日志记录和诊断信息,而在发布版本中排除这些信息。
  4. 实验性功能:在代码中包含实验性功能,而不影响稳定版本。
2025-09-29
C#
00

摘要

System.Speech 命名空间提供了在 WinForms 应用程序中进行语音合成(TTS)的功能。您可以使用 System.Speech 中的类和方法来读取文本并将其转换为语音。

正文

nuget 安装System.Speech

image.png

常用属性和方法

以下是 System.Speech 命名空间中一些常用的属性和方法:

SpeechSynthesizer 类

  • SpeakAsync:异步将指定的文本转换为语音并播放。

    用于将指定的文本转换为语音并进行播放。该方法是异步的,它会立即返回,而不会等待语音播放完成。

  • Speak:将指定的文本转换为语音并播放。

  • Volume:获取或设置语音合成器的音量级别。

    Volume 属性用于获取或设置语音合成器的音量级别。它的取值范围是从 0 到 100,默认值为 100。

  • Rate:获取或设置语音合成器的语速。

    Rate 属性用于获取或设置语音合成器的语速。它的取值范围是从 -10 到 10,默认值为 0。负值表示较慢的语速,正值表示较快的语速。

  • SelectVoice:选择要用于语音合成的语音。

    方法用于选择要用于语音合成的语音。可以通过传递语音的名称或标识符来选择语音。如果没有指定语音,系统将使用默认语音。

2025-09-29
C#
00

摘要

NAudio是一个开源的音频库,用于在C#应用程序中处理音频。它提供了许多方便的属性和方法,使开发人员能够轻松地读取、写入、转换和处理音频数据。

正文

nuget 安装 NAudio,与NAduio.Core

image.png

image.png

这个例子是在.net 6下,所以需要引用core版本。

2025-09-29
C#
00

摘要

SoundPlayer是C#中一个用于播放声音文件的类。它提供了一组属性和方法,用于控制声音的播放、暂停、停止等操作。在本文中,我们将详细介绍SoundPlayer的常用属性和方法,并提供一些实际的例子来演示它们的用法。

正文

nuget 安装

C#
System.Windows.Extensions

常用属性

以下是SoundPlayer类的常用属性:

  • SoundLocation:获取或设置要播放的音频文件的路径。
  • Stream:获取或设置要播放的音频文件的流。
  • IsLoadCompleted:获取一个值,指示音频文件是否已加载完成。

常用方法

以下是SoundPlayer类的常用方法:

  • Play:播放音频文件。
  • Stop:停止播放音频文件。
  • PlayLooping:循环播放音频文件。
  • PlaySync:同步播放音频文件。

下面是一个完整的示例代码,演示了如何使用这些属性:

C#
private void btnPlay_Click(object sender, EventArgs e) { // 创建一个SoundPlayer实例 SoundPlayer player = new SoundPlayer(); // 设置要播放的音频文件路径 player.SoundLocation = "D:\\BaiduSyncdisk\\11Test\\sa1.wav"; player.Load(); // 检查音频文件是否已加载完成 if (player.IsLoadCompleted) { stslbl_desc.Text = "音频文件已加载完成"; } // 播放音频文件 player.Play(); }

image.png

2025-09-29
C#
00

摘要


mciSendString 播放MP3

MCI(Media Control Interface,媒体控制接口)函数中,有些只适用于一种接口方式,有些则两种接口都可以用。mciSendString只适用于命令串接口方式(命令串中不区分大小写)。

正文

声明

C#
[DllImport("winmm.dll")] private static extern uint mciSendString(string command,StringBuilder returnValue,int returnLength,IntPtr winHandle);