C#用按钮播放本地音乐

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#用按钮播放本地音乐相关的知识,希望对你有一定的参考价值。

有好几种方法,这里只介绍利用Window Media Player播放的。

首先,创建一个winform窗体。

双击Form1.cs(已打开了的话就不用了),会显示窗体设计界面。

接着点击左边的工具箱(如果没有,那就点击“视图”,里面会有工具箱,点击就有了)。

然后移到“对话框”一栏,右键选择“选择项”

点击COM组件,在里面找到Windows Media Player,勾选,然后点确定。

这样对话框里就会有一个名为Windows Media Player的对话框,将其移动到窗口。

接着再将一个Button控件拖到窗口(这里不截图了,在“公共控件”一栏)

这样窗口就会有一个Button控件与一个Windows Media Player对话框。点击Windows Media Player对话框,看到右下角它的属性。将Visible(在“行为”一栏)设为False(将Windows Media Player对话框隐藏),将(Name)(在设计一栏,别问我为什么Name要加括号,因为本来就是这样)设为MP(这样更好写。

现在就要开始写代码了。右键右边的Form1.cs,点击查看代码,然后会弹出Form1.cs的代码。

回到Form1.cs的设计界面控件,双击Button控件(就是那个按钮),它会在Form1.cs代码里面添加Button被按下时执行的方法。

现在假设我想在按钮被按下时播放路径为D:\\Megalovania(swap)\\UnderProSans_萨尔之心 - [Underswap]MISFORTUNE.mp3的mp3文件,那就将MP的URL属性设为D:\\Megalovania(swap)\\UnderProSans_萨尔之心 - [Underswap]MISFORTUNE.mp3,代码如下。

MP.URL = @"‪D:\\Megalovania(swap)\\UnderProSans_萨尔之心 - [Underswap]MISFORTUNE.mp3";

可以参考这个方法来播放音乐。

这里解释一下为什么这个字符串前面要加@。这是为了避免“\\”有转义字符的意思(可以去了解一下),只将它看为一个字符。

好的,点击启动。

点击按钮就能播放音乐了。

参考技术A C/C++头文件一览
C、传统 C++
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#include <iomanip.h> //参数化输入/输出
#include <iostream.h> //数据流输入/输出
#include <limits.h> //定义各种数据类型最值常量
#include <locale.h> //定义本地化函数
#include <math.h> //定义数学函数
#include <stdio.h> //定义输入/输出函数
#include <stdlib.h> //定义杂项函数及内存分配函数
#include <string.h> //字符串处理
#include <strstrea.h> //基于数组的输入/输出
#include <time.h> //定义关于时间的函数
#include <wchar.h> //宽字符处理及输入/输出
#include <wctype.h> //宽字符分类
//////////////////////////////////////////////////////////////////////////
标准 C++ (同上的不再注释)
#include <algorithm> //STL 通用算法
#include <bitset> //STL 位集容器
#include <cctype>
#include <cerrno>
#include <clocale>
#include <cmath>
#include <complex> //复数类
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque> //STL 双端队列容器
#include <exception> //异常处理类
#include <fstream>
#include <functional> //STL 定义运算函数

从资源 C# 播放音乐

【中文标题】从资源 C# 播放音乐【英文标题】:Playing Music from resources C# 【发布时间】:2016-11-18 21:52:29 【问题描述】:

我想在我的新项目的启动器中播放一些背景音乐。但我得到一个错误。

private void playlooping()

    SoundPlayer.PlayLooping(system.Resources.Bgm);


//Bgm is the name of the song.

由于某种原因,我得到了错误

方法 'PlayLooping' 没有重载需要 1 个参数

【问题讨论】:

它基本上意味着你不能只用一个或任何参数调用PlayLooping。查看文档here 您可以看到PlayLooping 不接受任何参数。或许this 的回答对你有帮助。 那么我如何将我的音乐文件分配给播放循环。我如何告诉它播放我想要的文件 您的资源是音频文件的路径还是音频文件本身? 我在资源中添加了音频文件,因此该路径指向音频文件。如果那是您所说的,那不是原来的吗? 【参考方案1】:

正如我在评论中提到的,PlayLooping does not take any arguments。因此,您需要指定要在其他地方播放的声音。这可以通过SoundPlayer-Constructor 设置它来完成,如下所示:

// via string path
var soundPlayer = new SoundPlayer(@"C:\somePath\someFile.wav");

// via stream
var soundPlayer = new SoundPlayer(musicStream);

所以如果你的资源是一个字符串,你应该很好地使用:

var soundPlayer = new SoundPlayer(system.Resources.Bgm);

替代方法是在通过Site- 或Stream-SoundPlayer 对象的属性实例化您的SoundPlayer 后设置字符串路径或流:

var soundPlayer = new SoundPlayer();

// via path
soundPlayer.Site = @"C:\path\test.wav";

// via stream
soundPlayer.Stream = someStream;

正确设置后,您应该可以致电PlayLooping。所以你的最终代码应该是这样的(适用于我的测试窗口窗体应用程序,声音文件只需放在我的调试文件夹中):

var soundPlayer = new SoundPlayer("test.wav");
soundPlayer.PlayLooping();

您可以在SoundPlayer 上找到完整的文档:https://msdn.microsoft.com/en-us/library/system.media.soundplayer(v=vs.110).aspx

【讨论】:

好的,我替换 SoundPlayer.PlayLooping(system.Resources.Bgm);使用 var soundPlayer = new SoundPlayer(system.Resources.Bgm);线。好消息是错误消失了。不好的是。我启动应用程序时仍然听不到音乐 你还是应该打电话给soundPlayer.PlayLooping() :) "soundplayer 不包含 PLaylooping 的定义"?? 私有 void PlayLooping() SoundPlayer.Playlooping(); var soundPlayer = new SoundPlayer(Resources.Bgm); 应该是这样的:var soundPlayer = new SoundPlayer(Resources.Bgm); soundPlayer.PlayLooping();

以上是关于C#用按钮播放本地音乐的主要内容,如果未能解决你的问题,请参考以下文章

同时播放两个声音c#

下面是C#程序中的一个播放音乐的方法,这是别人的代码,为啥我更换不了播放的歌曲呢,本人是C#菜鸟

本地音乐播放器——播放界面和服务的通信

Alpha版本测试报告

asp.net c#如何编写学校体操定时音乐播放

急!!visualstadio 2010 wpf,用C#开发一个小程序,背景音乐问题