C#播放音频文件的详细步骤

 更新时间:2024年01月04日 11:43:39   作者:0xiaoxin  
这篇文章主要介绍了C#播放音频文件的详细步骤,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

要在代码中访问运行目录下的 Resources\audio 文件夹中的 MP3 文件,您需要构建文件的相对路径或绝对路径。由于您的 MP3 文件位于运行目录下,使用相对路径是一个简单且常见的方法。

这里有几个步骤需要注意:

  • 正确的路径:确保您的路径字符串正确指向音频文件。例如,如果音频文件名是 song.mp3,并且它位于 Resources\audio 文件夹内,您的相对路径将是 Resources\audio\song.mp3
  • 使用相对路径:在代码中,您可以直接使用这个相对路径,因为默认情况下,相对路径是相对于应用程序的运行目录的。
  • 处理路径字符串:使用反斜杠(\)时,要么使用双反斜杠(\\),要么在字符串前加 @ 符号。

下面是一个使用 MediaPlayer 类加载和播放该 MP3 文件的示例代码:

using System.Windows.Media;
MediaPlayer mediaPlayer = new MediaPlayer();
// 构建相对路径
string relativePath = @"Resources\audio\song.mp3";
// 设置音频源并播放
mediaPlayer.Open(new Uri(relativePath, UriKind.Relative));
mediaPlayer.Play();

在这个例子中,假设 song.mp3 是您的音频文件名,它位于 Resources\audio 文件夹中。确保该文件夹和文件在您的项目中,并且在编译时被复制到输出目录中。您可以在 Visual Studio 的解决方案资源管理器中设置文件的“复制到输出目录”属性为“始终复制”或“如果较新则复制”。

当您将文件(如MP3音频文件)添加到 Visual Studio 项目中时,需要设置该文件的“生成操作”属性,以便在编译和发布您的应用程序时,文件被正确处理。对于音频文件或其他资源文件(如图片、文本文件等),通常有两种常用的“生成操作”设置:

  • 内容(Content):这是最常用的设置,用于资源文件。当文件的“生成操作”设置为“内容”,这意味着该文件会被复制到应用程序的输出目录中,保持其在项目中的相对路径不变。这适用于您希望在应用程序运行时从输出目录访问的文件。

若要设置为“内容”,在解决方案资源管理器中选择文件,然后在属性窗口中将“生成操作”设置为“内容”。

  • 嵌入的资源(Embedded Resource):这个设置用于将文件嵌入到最终的程序集(.exe 或 .dll 文件)中。当您想要将资源与应用程序的可执行文件打包在一起时,可以选择这个选项。然而,访问嵌入的资源比访问内容文件稍微复杂一些,因为您需要使用特定的 API 来从程序集中读取它们。

若要设置为“嵌入的资源”,在解决方案资源管理器中选择文件,然后在属性窗口中将“生成操作”设置为“嵌入的资源”。

对于大多数情况,尤其是在处理音频文件、图片等时,选择“内容”是最直接和简单的方法。确保还设置了“复制到输出目录”,通常选择“始终复制”或“如果较新则复制”,以确保文件在编译时被复制到输出目录中。

到此这篇关于C#播放音频文件的文章就介绍到这了,更多相关C#播放音频文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C# 多线程学习之基础入门

    C# 多线程学习之基础入门

    线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。今天小编就带大家了解一下C#中的多线程,快来学习一下吧
    2021-12-12
  • 介绍C# 泛型类在使用中约束

    介绍C# 泛型类在使用中约束

    这篇文章介绍了C# 泛型类在使用中约束,有需要的朋友可以参考一下
    2013-09-09
  • UGUI实现ScrollView无限滚动效果

    UGUI实现ScrollView无限滚动效果

    这篇文章主要为大家详细介绍了UGUI实现ScrollView无限滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Unity UI组件ScrollRect实现无限滚动条

    Unity UI组件ScrollRect实现无限滚动条

    这篇文章主要为大家详细介绍了Unity UI组件ScrollRect实现无限滚动条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • c#数据绑定之将datatabel的data添加listView

    c#数据绑定之将datatabel的data添加listView

    这篇文章主要介绍了c#将DataTabel的data添加ListView的示例,实现功能是通过响应UI Textbox 的值向ListView 绑定新添加的纪录。 ,需要的朋友可以参考下
    2014-04-04
  • 系统讲解C#中文件读写的核心技术与实践指南

    系统讲解C#中文件读写的核心技术与实践指南

    文件读写是软件开发中最基础也最频繁的操作之一,本文系统阐述了C#文件读写的核心技术与实践要点,文中的示例代码讲解详细,希望对大家有一定的帮助
    2026-05-05
  • 详解WMI RPC 服务器不可用的解决方案

    详解WMI RPC 服务器不可用的解决方案

    这篇文章主要介绍了详解WMI RPC 服务器不可用的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • C#实现高性能检索文档的5大核心技巧总结

    C#实现高性能检索文档的5大核心技巧总结

    C#如何突破10GB文档的检索瓶颈,是优化算法,还是升级硬件,内存与磁盘如何平衡,下面小编就为大家简单分享5个C#高性能检索文档的核心技巧吧
    2025-10-10
  • C#和Java互相调用的方法小结

    C#和Java互相调用的方法小结

    这篇文章主要介绍了C#和Java互相调用的方法,文中展示了如何在不同编程语言之间实现互操作,每种语言之间的互操作都有其特定的方法和工具,希望这些示例能够帮助你更好地理解和实现跨语言调用,需要的朋友可以参考下
    2025-04-04
  • C# Socket粘包处理讲解示例

    C# Socket粘包处理讲解示例

    这篇文章主要介绍了C# Socket粘包处理讲解,大家可以参考使用
    2013-12-12

最新评论