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#用按钮播放本地音乐的主要内容,如果未能解决你的问题,请参考以下文章